使用 sql,我需要将 Lineno 和 orderline 变成一个复合键我该怎么做,到目前为止我已经有了
CREATE TABLE ORDERLINE (
ORDERNO INTEGER NOT NULL,
LINENO VARCHAR(4) NOT NULL,
NUMBERORDERED NUMERIC DEFAULT '1',
QUOTEDPRICE NUMERIC DEFAULT '0.00',
CONSTRAINT ORDERLINE_ORDERNO_PK PRIMARY KEY (ORDERNO),
CONSTRAINT ORDERLINE_ORDERNO_CC CHECK (ORDERNO BETWEEN 10000 AND 99999),
CONSTRAINT ORDERLINE_NUMBERORDERED CHECK (NUMBERORDERED BETWEEN 1 AND 100)
);
最佳答案
CREATE TABLE ORDERLINE (
ORDERNO INTEGER NOT NULL,
LINENO VARCHAR(4) NOT NULL,
NUMBERORDERED NUMERIC DEFAULT '1',
QUOTEDPRICE NUMERIC DEFAULT '0.00',
CONSTRAINT ORDERLINE_ORDERNO_PK PRIMARY KEY(ORDERNO, LINENO), -- note alteration on this line
CONSTRAINT ORDERLINE_ORDERNO_CC CHECK (ORDERNO BETWEEN 10000 AND 99999),
CONSTRAINT ORDERLINE_NUMBERORDERED CHECK (NUMBERORDERED BETWEEN 1 AND 100)
);
你非常接近。请注意上面添加的列名。
确定哪个字段更有可能成为任何查询中的前导列并将其放在首位。例如;如果您经常通过 OrderNO、LineNo 访问,那将是最好的订单,如果您通过 LineNo、OrderNO 访问该订单。
关于mysql - sql 复合键帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6172816/