3

SQLクエリを使用して、すべてのデータベーステーブルエンジンをMyISAMからInnoDBに変更したいと思います。
以下のクエリを使用しました。成功のメッセージが表示されますが、機能しません。それでも私のテーブルのストレージエンジンはMyISAMです。

SELECT CONCAT('ALTER TABLE ', table_name, ' ENGINE=InnoDB;') as ExecuteTheseSQLCommands
FROM information_schema.tables WHERE table_schema = 'name_of_the_database' 
ORDER BY table_name DESC;
4

3 に答える 3

1
于 2013-01-22T17:08:31.697 に答える
1

私の解決策-mysqlシェルを起動して貼り付けます:

SELECT CONCAT('ALTER TABLE ',CONCAT(TABLE_SCHEMA,'.',TABLE_NAME),'     
ENGINE=InnoDB;') 
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='MyISAM'
AND TABLE_SCHEMA NOT IN ('MYSQL','INFORMATION_SCHEMA','PERFORMANCE_SCHEMA','SYS')
INTO OUTFILE '/tmp/mysql.conversions';
SOURCE /tmp/mysql.conversions;

ソース1:https ://computingforgeeks.com/how-to-convert-all-mysql-tables-from-myisam-into-innodb-storage-engine/

ソース2:https ://stackoverflow.com/a/16014411/3882707

于 2020-03-13T21:53:15.570 に答える
0

http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.htmlを参照してください

ALTER TABLE t1 ENGINE=InnoDB;

編集:ああ、待って、あなたはこの種のステートメントを生成しましたが、それらは機能しませんでしたか?

于 2013-01-22T16:58:27.520 に答える