Mysql sql错误1064(42000)语法错误

Mysql sql错误1064(42000)语法错误,mysql,sql,syntax,mysql-error-1064,Mysql,Sql,Syntax,Mysql Error 1064,我只是想知道是否有人可以帮助我识别语法错误,因为我无法创建表。尝试将,放在主键声明之后 更新:我想应该是这样 CREATE TABLE IF NOT EXISTS message( id INT NOT NULL auto_increment, userid INT NOT NULL, date Date NOT NULL, text varchar(255) NOT NULL, PRIMARY KEY ('id') FOREIGN KEY ('userid') REF

我只是想知道是否有人可以帮助我识别语法错误,因为我无法创建表。

尝试将
放在主键声明之后

更新:我想应该是这样

CREATE TABLE IF NOT EXISTS message(
  id INT NOT NULL auto_increment,
  userid INT NOT NULL,
  date Date NOT NULL,
  text varchar(255) NOT NULL,
  PRIMARY KEY  ('id')
  FOREIGN KEY ('userid') REFERENCES users('id'));
CREATE TABLE 1; -- With references to table 2
CREATE TABLE 2;
INSERT INTO 1;
INSERT INTO 2;
ALTER TABLE 1 ADD FOREIGN KEY (user_id) REFERENCES 2 2(id);

我假设这是针对MS SQL Server的?如果您使用MS SQL Server Studio,您可以编写一些脚本,让您了解:

CREATE TABLE IF NOT EXISTS message (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  userid INT NOT NULL,
  date Date NOT NULL,
  text varchar(255) NOT NULL,
  FOREIGN KEY (userid) REFERENCES users(id));

您的查询应该如下所示

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[message]') AND type in (N'U'))
CREATE TABLE message(
id INT IDENTITY NOT NULL,
userid INT NOT NULL,
date Date NOT NULL,
text varchar(255) NOT NULL,
PRIMARY KEY  (id),
FOREIGN KEY (userid) REFERENCES users(id))
GO
假设您在
users
表中将
id
作为主键

CREATE TABLE IF NOT EXISTS message (
  id INT auto_increment PRIMARY KEY,
  userid INT NOT NULL,
  date Date NOT NULL,
  text varchar(255) NOT NULL,
  FOREIGN KEY (userid) REFERENCES users(id));

您的查询应如下所示:

CREATE TABLE users (id INT PRIMARY KEY)
注意
主键('id')
之后的

小把戏 您不必在表定义中指定外键。这样做很实用(因为dump可能会导出表,以便在创建/插入外键时失败):


尝试更改表的名称,可能是message是MySQL中内置的关键字

更新:我想应该是这样

CREATE TABLE IF NOT EXISTS message(
  id INT NOT NULL auto_increment,
  userid INT NOT NULL,
  date Date NOT NULL,
  text varchar(255) NOT NULL,
  PRIMARY KEY  ('id')
  FOREIGN KEY ('userid') REFERENCES users('id'));
CREATE TABLE 1; -- With references to table 2
CREATE TABLE 2;
INSERT INTO 1;
INSERT INTO 2;
ALTER TABLE 1 ADD FOREIGN KEY (user_id) REFERENCES 2 2(id);

错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在“id”附近使用的正确语法,外键('userid')引用第行的用户('id'))6@Ricki您的
用户
表是否有
id
列?当您有
自动递增
时,无需
非空
错误已解决或仍然存在??请参阅我的答案。。。你不会得到错误。。。还为
用户提供结构