创建表格语法在hsql中不起作用

时间:2012-11-03 05:59:06

标签: java hsqldb create-table

我是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.

请帮帮我..

先谢谢..

...干杯!

1 个答案:

答案 0 :(得分: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)
 );