12

我是 hsqldb 的新手。我正在开发简单的应用程序来获取用户的一些输入。所以搜索嵌入式数据库,发现 hsqldb 是我要求的解决方案。

我有一些创建表语法,但它会引发异常。

(此查询使用 Netbeans 数据库服务执行)

询问 :

CREATE TABLE  company (
  comp_name varchar(100) NOT NULL,
  comp_id int(40) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (comp_id)
);

或者

CREATE TABLE  company (
  comp_name varchar(100) NOT NULL,
  comp_id int(40) NOT NULL IDENTITY
);

hsql db 抛出错误:

Error code -5581, SQL state 42581: unexpected token: ( : line: 3
Line 2, column 1

Execution finished after 0 s, 1 error(s) occurred.

请帮帮我..

提前致谢..

干杯...!

4

1 回答 1

19

INT or INTEGER 不指定字段长度的情况下使用,因为 Int 类型字段不需要它。它是等类型字段所必需VARCHARDECIMAL

 CREATE TABLE  company (
   comp_name varchar(100) NOT NULL,
   comp_id int
 );

自动递增:

 ALTER TABLE company ALTER COLUMN comp_id 
 SET GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1);

或者:

 CREATE TABLE  company (
   comp_name varchar(100) NOT NULL,
   comp_id int GENERATED BY DEFAULT AS IDENTITY 
                                         (START WITH 1, INCREMENT BY 1) NOT NULL
 );

您还可以添加 PRIMARY_KEY 如下:

 CREATE TABLE  company (
   comp_name varchar(100) NOT NULL,
   comp_id INTEGER NOT NULL,
   PRIMARY KEY (comp_id)
 );
于 2012-11-03T06:06:53.560 回答