-1

これの何が問題なのかわかりません:

CREATE TABLE 'posts' (
  'IdPost' int(11) NOT NULL AUTO_INCREMENT,
  'IdUser' int(11) NOT NULL,
  'name' varchar(45) CHARACTER SET latin1 NOT NULL,
  'title' varchar(100) CHARACTER SET latin1 NOT NULL,
  'type' tinyint(4) NOT NULL,
  'address' varchar(30) CHARACTER SET latin1 NOT NULL,
  'lat' varchar(10) NOT NULL,
  'lon' varchar(10) NOT NULL,
  'url' varchar(30) NOT NULL,
  PRIMARY KEY ('IdPost')
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

サーバーで次のエラーが発生します。

#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 ''posts' ( 'IdPost' int(11) NOT NULL AUTO_INCREMENT, 'IdUser' int(11) NOT NUL' at line 1

何が問題ですか?

4

3 に答える 3

2

テーブル名に引用符を使用しないでください。また、列名からもすべての引用符を削除してください。

デモ SQL フィドル

補足:-

ここから:-

引用符は、識別子が SQL 予約語であるか、スペースやその他の特殊文字が含まれている場合に役立ちます。識別子を引用符で囲むと、それを完全に数値にすることもできます。これは、引用符で囲まれていない識別子には当てはまりません。引用された識別子内に識別子の引用文字を含めるには、二重にします。

于 2013-10-19T18:46:34.710 に答える
2

テーブルまたは列の名前を引用符で囲まないでください。予約語にはバッククォートを使用する必要がありますが、このテーブルには当てはまりません。

CREATE TABLE posts 
(
  IdPost int(11) NOT NULL AUTO_INCREMENT,
  IdUser int(11) NOT NULL,
  name varchar(45) CHARACTER SET latin1 NOT NULL,
  title varchar(100) CHARACTER SET latin1 NOT NULL,
  type tinyint(4) NOT NULL,
  address varchar(30) CHARACTER SET latin1 NOT NULL,
  lat varchar(10) NOT NULL,
  lon varchar(10) NOT NULL,
  url varchar(30) NOT NULL,
  PRIMARY KEY (IdPost)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
于 2013-10-19T18:45:32.293 に答える