2011-03-10 92 views
0

我有很多數據庫,並且在每個數據庫中都有表names。在一些我有唯一密鑰命名爲name1和在其他人相同的唯一密鑰命名爲name2。我想標準的這個名字,所以我準備3個查詢到每個數據庫上運行:MySQL:ALTER IGNORE TABLE with DROP INDEX

ALTER IGNORE TABLE `names` 
    DROP INDEX `name1`; 
ALTER IGNORE TABLE `names` 
    DROP INDEX `name2`; 
ALTER TABLE `names` 
    ADD UNIQUE `new_name` (`name`, `surname`); 

但我得到的錯誤:

SQL Error (1091): Can't DROP 'name1'; check that column/key exists 

我怎樣才能讓一組查詢到每個數據庫上運行?

+0

那麼問題是什麼?如何忽略錯誤,或者如何在每個數據庫中運行查詢? – azat 2011-03-10 12:44:15

回答

3

您可以嘗試,如果你在命令行中執行你的SQL腳本文件,忽略錯誤:

mysql -f -u username -p password -e 'source script.sql' 

編輯

由於艾克,要做到這一點,正確的做法是:

mysql -f -u username -p password < script.sql 
+1

事實上,如果存在多個錯誤,這將不起作用。它會在第一個錯誤後中止。忽略script.sql中錯誤的正確方法是:'mysql -f -u username -p password 2011-03-10 15:26:51

+0

謝謝,我編輯了我的答案 – JamesHalsall 2011-03-10 16:33:38