2

既存のテーブル構造を別のデータベースにコピーしたいだけです。すべてのクエリはphpmyadminで実行されます。

私は最初に実行します:

SHOW CREATE TABLE keyword_session

次に、その出力を別のデータベースで実行します。

CREATE TABLE `keyword_session` (  
`id` int(11) NOT NULL AUTO_INCREMENT, 
`session_id` int(11) NOT NULL,
`keyword_id` int(11) NOT NULL,  PRIMARY KEY (`id`))
ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

そして、私はエラーを受け取りました:

#1064-SQL構文にエラーがあります。id' int(11)NOT NULL AUTO_INCREMENT、session_idÂint(11)NOT NULL、Â `keywor'の1行目で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

構文エラーはどこにありますか?SHOW CREATE TABLEは、実行できる結果ではありませんか?


編集: 私がテーブルを作成しようとしているシステムに関するいくつかの情報:

Database server :
  Server: Localhost via UNIX socket
  Software: MySQL
  Software version: 5.1.63-0ubuntu0.11.10.1 - (Ubuntu)
  Protocol version: 10
  User: ...
  Server charset: UTF-8 Unicode (utf8)
Web server:
  ...
phpMyAdmin:
  Version information: 3.5.1, latest stable version: 3.5.5
  ...
4

4 に答える 4

2

エラーによると、ステートメントに不明な記号が含まÂれているようです。

おそらく、改行フィードが誤って解釈されています。私はそう言います、なぜならそれは行の終わりでのみ目立つからです:

id int(11) NOT NULL AUTO_INCREMENT, Â session_id int(11) NOT NULL, Â `keywor

シンボルが宣言の前session_idにどのように表示されるかに注意してください。keyword_id

于 2013-01-23T10:01:19.717 に答える
2

コマンド

show create table table_name;

デフォルトの文字セット照合utf8_general_ciを持つデータベースinformation_schemaから情報を取得します

したがって、データはその文字で具体的に保存されます

同じものを手動で入力すると、エラーは発生しません

エラーに示されているように、ステートメントにはデフォルトの文字セットに属する不明な記号があります

文字セットと照合の詳細については、ここを参照してください。これは、将来のエラーを回避または解決するためにそれらを理解するために参照するのに最適なものです。

于 2013-01-23T10:14:21.967 に答える
0

オンライン編集では、新しいバージョンのphpmyadminに注意してください。これらのテキストボックスからコピーすると、奇妙な文字が表示される場合があります。

ここに画像の説明を入力してください

于 2013-01-23T10:09:35.290 に答える
0

コピーしてメモ帳またはテキストエディタに貼り付けてから、再貼り付けしてみてください。おそらくそこにゴミの文字がいくつかあります。

于 2013-01-26T05:43:11.853 に答える