Appendix C. Reserved Words and Keywords

Reserved words are part of the Firebird SQL language. They cannot be used as identifiers (e.g. as table or procedure names), except when enclosed in double quotes in Dialect 3. However, you should avoid this unless you have a compelling reason.

Keywords are also part of the language. They have a special meaning when used in the proper context, but they are not reserved for Firebird’s own and exclusive use. You can use them as identifiers without double-quoting.

C.1 Reserved words

Full list of reserved words in Firebird 4.0:

ADD ADMIN ALL
ALTER AND ANY
AS AT AVG
BEGIN BETWEEN BIGINT
BINARY BIT_LENGTH BLOB
BOOLEAN BOTH BY
CASE CAST CHAR
CHARACTER CHARACTER_LENGTH CHAR_LENGTH
CHECK CLOSE COLLATE
COLUMN COMMENT COMMIT
CONNECT CONSTRAINT CORR
COUNT COVAR_POP COVAR_SAMP
CREATE CROSS CURRENT
CURRENT_CONNECTION CURRENT_DATE CURRENT_ROLE
CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TRANSACTION
CURRENT_USER CURSOR DATE
DAY DEC DECFLOAT
DECIMAL DECLARE DEFAULT
DELETE DELETING DETERMINISTIC
DISCONNECT DISTINCT DOUBLE
DROP ELSE END
ESCAPE EXECUTE EXISTS
EXTERNAL EXTRACT FALSE
FETCH FILTER FLOAT
FOR FOREIGN FROM
FULL FUNCTION GDSCODE
GLOBAL GRANT GROUP
HAVING HOUR IN
INDEX INNER INSENSITIVE
INSERT INSERTING INT
INT128 INTEGER INTO
IS JOIN LATERAL
LEADING LEFT LIKE
LOCAL LOCALTIME LOCALTIMESTAMP
LONG LOWER MAX
MERGE MIN MINUTE
MONTH NATIONAL NATURAL
NCHAR NO NOT
NULL NUMERIC OCTET_LENGTH
OF OFFSET ON
ONLY OPEN OR
ORDER OUTER OVER
PARAMETER PLAN POSITION
POST_EVENT PRECISION PRIMARY
PROCEDURE PUBLICATION RDB$DB_KEY
RDB$ERROR RDB$GET_CONTEXT RDB$GET_TRANSACTION_CN
RDB$RECORD_VERSION RDB$ROLE_IN_USE RDB$SET_CONTEXT
RDB$SYSTEM_PRIVILEGE REAL RECORD_VERSION
RECREATE RECURSIVE REFERENCES
REGR_AVGX REGR_AVGY REGR_COUNT
REGR_INTERCEPT REGR_R2 REGR_SLOPE
REGR_SXX REGR_SXY REGR_SYY
RELEASE RESETTING RETURN
RETURNING_VALUES RETURNS REVOKE
RIGHT ROLLBACK ROW
ROWS ROW_COUNT SAVEPOINT
SCROLL SECOND SELECT
SENSITIVE SET SIMILAR
SMALLINT SOME SQLCODE
SQLSTATE START STDDEV_POP
STDDEV_SAMP SUM TABLE
THEN TIME TIMESTAMP
TIMEZONE_HOUR TIMEZONE_MINUTE TO
TRAILING TRIGGER TRIM
TRUE UNBOUNDED UNION
UNIQUE UNKNOWN UPDATE
UPDATING UPPER USER
USING VALUE VALUES
VARBINARY VARCHAR VARIABLE
VARYING VAR_POP VAR_SAMP
VIEW WHEN WHERE
WHILE WINDOW WITH
WITHOUT YEAR