0
INSERT我有一個表創建:MySQL的有兩個不同的UNIQUE約束
CREATE TABLE userSessions (
id INTEGER NOT NULL AUTO_INCREMENT,
userId VARCHAR(50) NOT NULL,
startTime TIMESTAMP NULL,
endTime TIMESTAMP NULL,
PRIMARY KEY (id),
INDEX(startTime),
INDEX(endTime),
UNIQUE(userId, startTime),
UNIQUE(userId, endTime)
);
而且我想知道,如果插入行具有重複鍵,在其約束是重複的,在開始時間或在endTime上。 有誰知道該怎麼做?
另外值得一提的是,(據我所知)沒有除解析錯誤消息外(取決於服務器版本,格式可能稍有變化)的其他方式獲取密鑰名稱。 – 2013-05-02 12:22:02
誠然,程序員永遠不需要知道這一點 - 重複時間戳永遠不可能,即使如此,業務邏輯應該在嘗試INSERT查詢之前檢查有效性。 – 2013-05-02 12:26:34
從客戶端強制執行該操作可能涉及鎖定整個表。根據情況它可能是矯枉過正。有一個API來獲取密鑰名稱有它的用法。 – 2013-05-02 12:31:16