0
我正在做一個MySQL不同,以幫助更新我的表從開發到生產,但我在索引有點麻煩。重新創建MySQL中的UNI和MUL索引
我正在使用show full columns from table
獲取表的索引/鍵並比較它們,然後構建必要的查詢以更新第一個表。
我得到主鍵,這是工作。但我一直在閱讀,但我仍然不完全瞭解其他兩種可能性,MUL
和UNI
。
我閱讀man page ..
如果主要是PRI,列是一個主鍵或者是一個多列主鍵的列 之一。
如果鍵是UNI,則該列是唯一值索引 中不能包含NULL值的第一列。
如果鍵爲MUL,則列中允許多次出現給定值 。該列是非唯一索引 的第一列或可包含NULL值的唯一值索引。
這是我目前得到的,如果它有某種相關性。
if($key1 != $key2){
if($key1['PRI'] != $key2['PRI']){
// remove any existing primary keys
$results[$table_name][] = "ALTER TABLE $table_name DROP PRIMARY KEY;";
// add the new primary keys
$results[$table_name][] = "ALTER TABLE $table_name ADD CONSTRAINT pk_$table_name PRIMARY KEY (".implode(",", $key2['PRI']).")";
}
if($key1['MUL'] != $key2['MUL']){
// what to do here?
}
if($key1['UNI'] != $key2['UNI']){
// what to do here?
}
}
我猜我能爲UNI
做這樣的事情:ALTER TABLE table ADD CONSTRAINT uc_myKey UNIQUE (indexColumn)
..是正確的嗎?
MUL
tiple鍵怎麼樣?這是什麼語法?
什麼是創建MUL
和UNI
類型鍵的MySQL語法?
謝謝。
你說得對有關UNI的多個密鑰是這樣的:'改變表格等等添加約束pk_something主鍵(FIELD1,FIELD2)' –
@JorgeCampos - 謝謝你,但這是我用於'PRI'類型鍵的確切語法。它們是可互換的還是我的主鍵查詢需要調整? –