你只需要先創建這些兩列的UNIQUE
指數:
ALTER TABLE `tablename` ADD UNIQUE `unique_index`(`transId`, `pltCode`);
或者更好的是,創建一個新表:
CREATE TABLE tablename (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
transId VARCHAR(64),
pltCode VARCHAR(64),
val1 VARCHAR(6),
val2 VARCHAR(6),
PRIMARY KEY (id),
UNIQUE `unique_index`(`transId`, `pltCode`)
);
字段屬性NOT NULL正在使用,因爲我們不希望此 字段爲NULL。所以如果用戶試圖用NULL值創建一條記錄,那麼MySQL會產生一個錯誤。
字段屬性AUTO_INCREMENT告訴MySQL繼續並將 下一個可用編號添加到id字段。所以你不必每次都手動設置它。
關鍵字PRIMARY KEY用於將列定義爲主鍵。您可以使用多個用逗號分隔的列來定義主鍵。
關鍵字UNIQUE表示兩行不能有相同的索引 值。
參考This sitepoint tutorial on table creation for more info:
然後做一個ON DUPLICATE KEY UPDATE
修改其他列重複鍵在收到時同時插入:
INSERT INTO tablename (
transId, pltCode, val1, val2
) values('001','abc','val1','val2')
ON DUPLICATE KEY UPDATE val1 = new_val1, val2 = new_val2;
怎麼辦'upsert'或'merge'中搜索MySQL的。如果您希望有人通過查詢來幫助您,請創建一個包含示例數據和預期輸出的小提琴。 – Utsav