INSERT MYSQL的唯一值

时间:2011-08-19 10:48:06

标签: mysql auto-increment

我正在尝试在表格中插入一个唯一值,但是在创建之前我需要知道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字段吗?

3 个答案:

答案 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 

Alter Table Manual