这段代码一直给我错误,我不知道它可能在哪里

时间:2017-05-28 14:20:49

标签: mysql sql

CREATE TABLE TRACKING_RECORD(
    ReaderID int(11) NOT NULL,
    EPC int(11) NOT NULL,
    `Timestamp` timestamp NOT NULL,
    Latitude varchar(30),
    Longitude varchar(30),
    PRIMARY KEY (ReaderID,EPC,`Timestamp`)
    on UPDATE CASCADE );

错误发生在" ON UPDATE CASCADE" 它要求一个结束括号

1 个答案:

答案 0 :(得分:0)

ON UPDATE CASCADE外键语法的一部分,而不是主键语法。在这种情况下,它没有任何意义,所以只需删除它:

CREATE TABLE TRACKING_RECORD (
    ReaderID int(11) NOT NULL,
    EPC int(11) NOT NULL,
    `Timestamp` timestamp NOT NULL,
    Latitude varchar(30),
    Longitude varchar(30),
    PRIMARY KEY (ReaderID, EPC, `Timestamp`)
);

我建议你避免使用复合主键。相反,使用一个自动递增的主键并将另一个定义为unique

CREATE TABLE TRACKING_RECORD (
    TrackingRecordId int auto_increment primary key,
    ReaderID int(11) NOT NULL,
    EPC int(11) NOT NULL,
    `Timestamp` timestamp NOT NULL,
    Latitude varchar(30),
    Longitude varchar(30),
    UNIQUE (ReaderID, EPC, `Timestamp`)
);