美好的一天向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