発生場所:phpMyAdminの[操作]タブ。

発生時期:テーブルの「構造のみ」コピー(データを含まないコピー)を実行しようとした時。

内容:エラーメッセージが表示されコピーができなかった。

原因:phpMyAdminが自動生成したSQL文の間違い。

解決方法:SQL文を手動で直し、手動で実行したらコピーができました。

 

解決までの説明です

テーブルをコピーしようとしたら、次のメッセージが出てコピーができませんでした。

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '( ) , 日付項目 datetime NOT NULL DEFAULTcurrent_timestamp( ) ,

黄色い枠の中をコピペすると

「#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘( ) ,`日付項目` datetime NOT NULL DEFAULTcurrent_timestamp( ) ,」

という内容。

 

仕方がないので上のメッセージ文に表示された、「phpMyAdmin」が自動生成したSQL文もコピペし、関係のあるところを抜粋すると

「CREATE TABLE table_a.table_b (...

`first_time` datetime NOT NULL DEFAULTcurrent_timestamp( ) ,

`last_time` datetime NOT NULL DEFAULTcurrent_timestamp( ) ,

...) ENGINE = InnoDB DEFAULT CHARSET = utf8」

となっていました。

明らかに「NOT NULL DEFAULTcurrent_timestamp( )」はおかしいので、Tとcとの間に半角スペースを入れ

`first_time` datetime NOT NULL DEFAULT current_timestamp( ) ,

`last_time` datetime NOT NULL DEFAULT current_timestamp( ) ,

と修正したSQL文をSQLタブに貼りつけて[実行]したら

SQL文を修正して実行

成功(解決)しました。

実行したSQL文が成功した場合のメッセージ文
返り値が空でした (行数 0)


ȥåץڡ