我正在尝试在表格中插入一个唯一值,但是在创建之前我需要知道ID
。我知道AUTO_INCREMENT
可以解决此问题,但此字段不是AUTO_INCREMENTed
。
这是我的代码......
INSERT INTO networks
(NETWORK_ID, ADMIN_USER_ID, NETWORK_NAME, ADDRESS)
VALUES
((SELECT MAX(NETWORK_ID)+1 FROM networks) , 3, 'Arcafe', 'habarzel 2 TA')
当我运行它时,我收到警告,我不能使用FROM
中的表格,我猜是因为它指向自己。我怎样才能达到我的需要?我可以将字段更改为AUTO_INCREMENT
字段吗?
答案 0 :(得分:4)
通常在定义时将字段设置为自动增量字段。之后,您可以使用:
ALTER TABLE networks MODIFY NETWORK_ID int(10) unsigned NOT NULL auto_increment;
然后插入一个ew记录并让它自动获取一个指定的ID,只是省略插入的字段,例如
INSERT INTO networks
(ADMIN_USER_ID, NETWORK_NAME, ADDRESS)
VALUES
(3, 'Arcafe', 'habarzel 2 TA')
答案 1 :(得分:1)
您可以使用单独的表生成唯一ID并使用此ID
答案 2 :(得分:1)
ALTER TABLE networks CHANGE NETWORK_ID NETWORK_ID int auto_increment