2012-11-15 55 views
0

我想定義一個表,我想要定義主鍵有列的反轉。我想知道它在innodb中可能嗎?我們可以有主鍵作爲列或一組列的功能

我創建一個表

create table abc 
(
    `id` varchar(255) PRIMARY KEY , 
    `key` LONGTEXT NOT NULL, 
    `value` LONGTEXT NOT NULL , 
    `last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `created_on` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' 
) 

,而是我想PRIMARY KEY (reverse(id))

+0

錯誤,如果你只是想'id'的相反,爲什麼不存儲,而不是'id'? – eggyal

回答

0

MySQL不上的功能支持指數在所有。所以它顯然不能讓他們成爲主鍵。

MySQL也不支持視圖上的物化視圖或索引。 1

根據你想要完成的事情,最有可能的是你應該只是反過來存儲你的密鑰。如果您的應用程序依賴於它與存儲的內容相反,請爲應用程序創建一個視圖進行交互。不幸的是,更新將很難,因爲MySQL doesn't do INSTEAD OF triggerstriggers on views at all

+0

問題是系統正在鎖定mysql行,當許多線程嘗試並確認行上的鎖時,mysql正在給出deadlocklooser異常。我認爲這個問題是因爲我的ID是按順序存儲的。所以鎖定是圍繞作爲主鍵的「id」發生的。我只是試圖改變主鍵,以便鎖定的順序發生變化。 – Arjit

+0

@Arjit然後,我建議您提出這個問題。 – derobert

相關問題