Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在derby中将表列自动递增1_Sql_Database_Derby - Fatal编程技术网

Sql 在derby中将表列自动递增1

Sql 在derby中将表列自动递增1,sql,database,derby,Sql,Database,Derby,我已经在derby Netbeans中创建了一个表,现在我意识到我需要将一列自动递增1,这是一个主键。我怎样才能做到?我尝试了以下代码,但没有成功 ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1; 我是否需要再次创建表,或者是否可以通过其他方式创建表?尝试以下操作: alter table ISSUERECIPT modify column IRCODE int(4) auto_increment ALTER TABLE tbl

我已经在derby Netbeans中创建了一个表,现在我意识到我需要将一列自动递增1,这是一个主键。我怎样才能做到?我尝试了以下代码,但没有成功

ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;
我是否需要再次创建表,或者是否可以通过其他方式创建表?

尝试以下操作:

alter table ISSUERECIPT modify column IRCODE int(4) auto_increment

ALTER TABLE tbl ADD id INT主键自动递增

ALTER TABLE ISSUERECIPT  ADD IRCODE INTEGER NOT NULL primary key GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
我想我可以为你做些事情

ALTER TABLE ISSUERECIPT 
ALTER IRCODE INTEGER NOT NULL 
GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1);
如果你的桌子是空的,试试这个

ALTER TABLE DROP  PRIMARY KEY your_primaryKeyContrainName ; 
ALTER TABLE ISSUERECIPT DROP COLUMN IRCODE ;
ALTER TABLE ISSUERECIPT ADD COLUMN 
IRCODE PRIMARY KEY INTEGER NOT NULL 
GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1);

另请参见:

我找到了另一种解决方案,我从数据库中删除了该列(感谢vels4j),再次从netbeans derby UI中添加了该列,如下所示:


要更改自动生成的列,代码如下

ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;
但是该列必须已经用IDENTITY属性定义(如本文所述)

在大多数情况下(假设您也是),主键列未设置为标识。因此,您可能打算将列更改为IDENTITY,但这是不可能的


唯一的方法是删除表格并重新创建,如所述。

重新创建表格请参见下面的示例:

CREATE TABLE students
(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
name VARCHAR(24) NOT NULL,
address VARCHAR(1024),
CONSTRAINT primary_key PRIMARY KEY (id)
) ;

ALTER TABLE语句无法向表中添加标识列

如果您的表为空或不在生产中。删除表格并再次创建,例如:

DROP TABLE CUSTOMER;
CREATE TABLE CUSTOMER
(CUSTOMER_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 
1),
FIRSTNAME VARCHAR(100) NOT NULL,VARCHAR(100),
PREFERRED_ID INTEGER,
CONSTRAINT primary_key PRIMARY KEY (CUSTOMER_ID)
);

抱歉显示以下错误:错误代码-1,SQL状态42X01:语法错误:在第1行第25列遇到“修改”。是。我敢肯定。您还可以确保:在此处检查ALTERTABLE语法。有修改列选项。@asmita不是mysql,他要求derbyError代码-1,SQL状态42X01:语法错误:在第1行第52列遇到“自动增量”。错误代码-1,SQL状态42601:ALTER TABLE语句无法向表中添加标识列。错误代码-1,SQL state 42601:ALTER TABLE语句无法向表中添加标识列。错误代码-1,SQL state 42X01:语法错误:在第2行第14列遇到“整数”。主键属性如何?它不在查询中?@NiteshVerma主键属性呢?您在您的文档中没有提到任何关于主键的内容quesiton@NiteshVerma检查我的编辑。只需删除主键约束并在第2行第8列添加itError代码-1,SQL状态42X01:语法错误:遇到“”。这在我尝试时没有任何效果(尽管我不知道删除列;您能解释一下吗?)ALTER TABLE drop;这对我不起作用。我只能添加第一行(因为默认值为1),然后我不能再添加更多。它将在自动增量基础上添加,对我不起作用。错误代码-1,SQL状态23505:该语句被中止,因为它会在“CUSTOMER”上定义的“SQL141130220816540”标识的唯一或主键约束或唯一索引中导致重复的键值。