mysql rename table_Mysql: RENAME TABLE IF EXISTS
可以將文章內容翻譯成中文,廣告屏蔽插件可能會導致該功能失效(如失效,請關閉廣告屏蔽插件后再試):
問題:
This DROP TABLE IF EXISTS works, too bad that RENAME TABLE IF EXISTS doesn't work.
Can anyone suggest a solution for this query? You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS video_top_day TO video_top_day_for_delete' at line 1
query: RENAME TABLE IF EXISTS video_top_day TO video_top_day_for_delete
回答1:
I've managed to execute a code that always works and generates no errors when the table doesn't exist: SELECT Count(*) INTO @exists FROM information_schema.tables WHERE table_schema = [DATABASE_NAME] AND table_type = 'BASE TABLE' AND table_name = 'video_top_day'; SET @query = If(@exists>0, 'RENAME TABLE video_top_day TO video_top_day_for_delete', 'SELECT \'nothing to rename\' status'); PREPARE stmt FROM @query; EXECUTE stmt;
When you don't want to replace [DATABASE NAME] manually you can use the following variable SELECT DATABASE() INTO @db_name FROM DUAL;
回答2:
First create table IF NOT EXISTS. Then RENAME it, so it will always exist!
Otherwise, rename the table, and if it doesn't exist just handle the error.
It is obvious, but it works.
回答3:
There's no official solution yet. There has been feature request submitted in 2004, never closed
回答4:
create table table2 like table1; insert into table2 select * from table1; drop table table1;
回答5:
If you are familiar with PL/SQL, then you can check for existence of table by querying information_schema.columns and based on this perform rename
回答6:
rename table oldtablename to newtablename
總結
以上是生活随笔為你收集整理的mysql rename table_Mysql: RENAME TABLE IF EXISTS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 裁员、换帅、造车,小米难成真高端
- 下一篇: mysql对所有列的数据进行修改6_My