我有一個很長的數據庫字段(2083個字符),因此我無法在MySQL中爲它設置UNIQUE約束。爲MySQL數據庫中的long varchar字段強制使用唯一值
我試過修改存儲過程,所以我可以檢查試圖插入的值是否是唯一的,如果不是,則停止插入。但是,存儲過程總是錯誤。我已經嘗試了很多不同的語法。這真是奇怪,存儲過程很好,只有if語句或插入,但不與兩者。
感謝任何幫助。
BEGIN
SET @insertedid := 0;
SET @alreadyfound := 0;
SELECT COUNT(lref_id) FROM listing_referrers WHERE lref_referring_url=in_lref_referring_url INTO @alreadyfound;
IF (@alreadyfound = 0) THEN
BEGIN
INSERT INTO listing_referrers (lref_listing_id,lref_referring_url,lref_createdby_userid,lref_created) VALUES (in_lref_listing_id, in_lref_referring_url, in_lref_createdby_userid, in_lref_created);
SET @insertedid = last_insert_id();
END
SELECT @insertedid;
END
我會在觸發部分使用'IF EXISTS(SELECT ...)THEN ...'。 –
@PaulSpiegel請隨時調整我的答案 - 我已經把它作爲一個社區wiki條目,所以你應該被允許改變它。 – EagleRainbow
哇,非常感謝你的全面回答。哈希鍵列可能最吸引我。如此優雅簡單!我會運行一些測試,並讓你知道我如何繼續。 – ChrisFNZ