创建表时出现SQL错误-Firebird

时间:2019-04-08 09:05:08

标签: sql firebird ddl sqldatatypes ibexpert

我有一个简单的sql代码,分别用于create tableadd 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的客户端。当我执行此代码时,我得到两个错误:

第一个错误:-用代码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。第二个错误呢?该如何解决?

1 个答案:

答案 0 :(得分:4)

  1. Firebird中没有cv::Rect r1=Rect(10,20,40,60); cv::Rect r2(r1.tl() * 2, r1.br() * 2); 类型-https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-datatypes-chartypes.html
  2. 如果要运行两个命令-您必须运行两个命令。您尝试同时运行两个命令,但这不是一种方法。您必须将它们拆分并一个接一个地运行。或者,您必须将它们包装到一个VARCHAR2命令中。
  3. EXECUTE BLOCK还具有IBExpert的单独窗口,用于运行多个命令。不是Script Executive设计用来执行一个命令,它是另一个菜单中的单独窗口-https://www.ibexpert.net/ibe/pmwiki.php?n=Doc.ScriptExecutive

表创建命令的描述如下:https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-ddl-tbl.html

如果要在一个命令中执行,基本上就是这样:

SQL Editor

或者,如果您坚持要命名,那么

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 )
)