0
私はMySQLには新しく、すべてのテーブルの名前を大文字に変更するスクリプトがあります。私はそれに間違いがありますが、なぜ動作していないのか分かりません。どんな助けもありがとう!MySQLカーソルリネームテーブル、スクリプトエラー
DECLARE a VARCHAR(100);
DECLARE done INT DEFAULT 0;
DECLARE cur1 CURSOR FOR
SELECT DISTINCT table_name
FROM information_schema.columns
WHERE table_schema='admin27_shop';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a;
IF done THEN
LEAVE read_loop;
END IF;
CREATE TABLE CONCAT(a, '1') SELECT * FROM a;
DROP TABLE a;
RENAME TABLE CONCAT(a, '1') TO UPPER(a);
END LOOP;
CLOSE cur1;
UPDATE:エラーメッセージは、変数の宣言では、1行目に起こる構文エラーがあると言う...
SQLエラーメッセージを投稿した場合に役立ちます。 – Prisoner
ALTERは成功の鍵です –
私はこのスクリプトに関するいくつかの本当の懸念を持っています。書かれているように 'CREATE TABLE/DROP TABLE'はあなたの既存のインデックスのすべてを失うことになります。あなたのエラーは、依然として存在する子テーブルへの外部キー関係を持つ親テーブルを削除しようとしていることです。 –