2016-12-31 50 views
2

我是SQL的新手,我無法弄清楚。我很樂意得到一些幫助。謝謝。爲什麼這會在MSSQL Server中創建表SQL,但不在MySQL上?

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的服務器版本正確的語法附近

使用手動在行 'sendtime TIMESTAMP,
約束pk_messages PRIMARY KEY(發件人,收件人,'
4個

回答

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。

+0

謝謝。有沒有辦法存儲無限長度?或者如果我想要的話,我只需要定義一個非常高的數字? – sevku

+0

我剛剛嘗試過它,它在我指定長度時起作用。非常感謝。 – sevku

相關問題