美好的一天向mySql中的现有表添加唯一值
我从另一个表列OLD_TABLE的某些表中创建了一个表NEW_TABLE。
我添加型双
我要填写具有唯一值的ID列的值,然后使之成为了NEW_TABLE键的新列“ID”。
有没有办法在mySql中使用查询或set命令来做到这一点?
可能像
Insert into NEW_TABLE
(select generateId() , col1, col2
from ORIGINAL_TABLE)
感谢
美好的一天向mySql中的现有表添加唯一值
我从另一个表列OLD_TABLE的某些表中创建了一个表NEW_TABLE。
我添加型双
我要填写具有唯一值的ID列的值,然后使之成为了NEW_TABLE键的新列“ID”。
有没有办法在mySql中使用查询或set命令来做到这一点?
可能像
Insert into NEW_TABLE
(select generateId() , col1, col2
from ORIGINAL_TABLE)
感谢
试试这个:
Insert into NEW_TABLE
(select @row := @row + 1 as generateId, col1, col2
from ORIGINAL_TABLE, (SELECT @row := 0)row)
您应该使用自动增量和整型字段(没有任何理由让你想要一个双排键有?):
CREATE TABLE NEW_TABLE (
id INT NOT NULL AUTO_INCREMENT,
col1 CHAR(30) NOT NULL,
col2 CHAR(30) NOT NULL,
PRIMARY KEY (id)
)
通常,您将字段设置为自定义增量字段。要做到这一点之后,你可以使用:
ALTER TABLE NEW_TABLE MODIFY ID int(10) unsigned NOT NULL auto_increment;
为了再插入一个新的记录,并且它可以自动获得一个分配的ID,只是从插入忽略的领域。
为什么选择DOUBLE
而不是整数数据类型?
ALTER TABLE NEW_TABLE
MODIFY ID INT UNSIGNED NOT NULL AUTO_INCREMENT ;
ALTER TABLE NEW_TABLE
ADD CONSTRAINT new_table_pk
PRIMARY KEY (ID) ;
然后:
INSERT INTO NEW_TABLE
(col1, col2)
SELECT col1, col2
FROM ORIGINAL_TABLE ;
您可以使用自动增量 – Samson 2012-07-23 08:37:24
为什么'DOUBLE'而不是'INT'或'BIGINT'? – 2012-07-23 08:37:38