我有一个DB2表,我正在尝试转换成MySQL表。这是DB2表:
CREATE TABLE MY_TABLE (
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1 INCREMENT BY 1 NO MAXVALUE NO CYCLE CACHE 100),
ACTIVE SMALLINT NOT NULL,
PRIMARY KEY (ID)
)# 我已经转换为MySQL了,比如:
CREATE TABLE MY_TABLE (
ID BIGINT ,
ACTIVE SMALLINT NOT NULL,
PRIMARY KEY (ID)
);我正在运行一个程序
create procedure test_proced(
in to_create bigint,
out created bigint
)
begin
set created = (select count(vnr.id) from MY_TABLE vnr);
while (created < to_create) do
insert into MY_TABLE (active) values(0);
set created = created + 1;
end while;
end;但是在此表中添加了上面的过程之后,我得到了一些错误,例如:
Caused by: java.sql.SQLException: Field 'id' doesn't have a default value现在我怀疑GENERATED BY DEFAULT AS IDENTITY。这个错误是由这个问题引起的吗?如果是,如何转换为相应的MySQL表?
发布于 2017-12-04 16:24:35
在MySQL中,您可以使用AUTO_INCREMENT
CREATE TABLE MY_TABLE (
ID BIGINT NOT NULL AUTO_INCREMENT,
ACTIVE SMALLINT NOT NULL,
PRIMARY KEY (ID)
);每次在ID中插入新行时,都会自动为列MY_TABLE生成一个新值。默认情况下,每个自动生成的值都等于前面(按插入顺序)记录加1的值。
注意:默认是以1步骤值从1开始。
发布于 2017-12-04 16:25:21
将自动增量添加到主键将解决此问题。
https://stackoverflow.com/questions/47637651
复制相似问题