Sql 创建表时出错 - Firebird
Sql error while creating tables - Firebird
我有 create table
的简单 sql 代码,然后是 add constraint
代码。它看起来像这样:
CREATE TABLE bills (
id INTEGER NOT NULL,
code VARCHAR2(25) NOT NULL,
dateOfGeneration DATE NOT NULL,
job_id INTEGER NOT NULL
);
ALTER TABLE bills ADD CONSTRAINT bills_pk PRIMARY KEY ( id,job_id );
我正在使用 IBExpert - Firebird 的客户端。当我执行此代码时,出现 2 个错误:
第一个错误:-在代码中 VARCHAR2(25) NOT NULL
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, column 29.
(.
第二个错误:- 在代码中 ALTER TABLE ...
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 8, column 1.
ALTER.
我认为第一个是因为我使用 varchar2
而不是 varchar
。第二个错误呢?如何解决这个问题?
- Firebird 中没有
VARCHAR2
类型 - https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-datatypes-chartypes.html
- 如果你想 运行 两个命令 - 你必须 运行 两个命令。您尝试 运行 将两个命令合二为一,但这不是一种方法。您必须将它们分开并 运行 一个接一个。或者你必须将它们包装成一个
EXECUTE BLOCK
命令。
- 另外
IBExpert
有一个单独的 window of Script Executive
用于多个命令 运行ning。它不是旨在执行一个命令的 SQL Editor
,它是另一个菜单中的单独 window - https://www.ibexpert.net/ibe/pmwiki.php?n=Doc.ScriptExecutive
Table 创建命令描述如下:https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-ddl-tbl.html
基本上你想做的事情看起来像这样,如果在一个命令中完成:
CREATE TABLE bills (
id INTEGER NOT NULL,
code VARCHAR(25) NOT NULL,
dateOfGeneration DATE NOT NULL,
job_id INTEGER NOT NULL,
PRIMARY KEY ( id,job_id )
)
或者如果你坚持命名那么也许
CREATE TABLE bills (
id INTEGER NOT NULL,
code VARCHAR(25) NOT NULL,
dateOfGeneration DATE NOT NULL,
job_id INTEGER NOT NULL,
CONSTRAINT bills_pk PRIMARY KEY ( id,job_id )
)
我有 create table
的简单 sql 代码,然后是 add constraint
代码。它看起来像这样:
CREATE TABLE bills (
id INTEGER NOT NULL,
code VARCHAR2(25) NOT NULL,
dateOfGeneration DATE NOT NULL,
job_id INTEGER NOT NULL
);
ALTER TABLE bills ADD CONSTRAINT bills_pk PRIMARY KEY ( id,job_id );
我正在使用 IBExpert - Firebird 的客户端。当我执行此代码时,出现 2 个错误:
第一个错误:-在代码中 VARCHAR2(25) NOT NULL
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, column 29.
(.
第二个错误:- 在代码中 ALTER TABLE ...
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 8, column 1.
ALTER.
我认为第一个是因为我使用 varchar2
而不是 varchar
。第二个错误呢?如何解决这个问题?
- Firebird 中没有
VARCHAR2
类型 - https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-datatypes-chartypes.html - 如果你想 运行 两个命令 - 你必须 运行 两个命令。您尝试 运行 将两个命令合二为一,但这不是一种方法。您必须将它们分开并 运行 一个接一个。或者你必须将它们包装成一个
EXECUTE BLOCK
命令。 - 另外
IBExpert
有一个单独的 window ofScript Executive
用于多个命令 运行ning。它不是旨在执行一个命令的SQL Editor
,它是另一个菜单中的单独 window - https://www.ibexpert.net/ibe/pmwiki.php?n=Doc.ScriptExecutive
Table 创建命令描述如下:https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-ddl-tbl.html
基本上你想做的事情看起来像这样,如果在一个命令中完成:
CREATE TABLE bills (
id INTEGER NOT NULL,
code VARCHAR(25) NOT NULL,
dateOfGeneration DATE NOT NULL,
job_id INTEGER NOT NULL,
PRIMARY KEY ( id,job_id )
)
或者如果你坚持命名那么也许
CREATE TABLE bills (
id INTEGER NOT NULL,
code VARCHAR(25) NOT NULL,
dateOfGeneration DATE NOT NULL,
job_id INTEGER NOT NULL,
CONSTRAINT bills_pk PRIMARY KEY ( id,job_id )
)