为什么这会在MSSQL Server中创建表SQL而不在MySQL上创建?

时间:2016-12-31 08:36:06

标签: mysql sql

我是SQL的新手,我无法理解。我很乐意得到一些帮助。谢谢。

CREATE TABLE messages(
  sender INT REFERENCES users(id),
  receiver INT REFERENCES users(id),
  message VARCHAR,
  sendtime TIMESTAMP,
  CONSTRAINT pk_messages PRIMARY KEY(sender, receiver, sendtime)
);

这是错误代码:

  

#1064 - 您的SQL语法出错;查看与MariaDB服务器版本对应的手册,以便在

附近使用正确的语法      

'发送时间TIMESTAMP,
  约束pk_messages PRIMARY KEY(发送者,接收者,'第4行

1 个答案:

答案 0 :(得分:3)

MySQL 需要长度在varchar列中指定:

create table messages (
    sender int references users(id),
    receiver int references users(id),
    message varchar(100), -- change 100 based on your needs
    sendtime timestamp,
    constraint pk_messages primary key (
        sender,
        receiver,
        sendtime
        )
    );

在MSSQL中,如果未指定,则默认长度为1。