mysql - sql 复合键帮助

标签 mysql sql key

使用 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/

相关文章:

sql - 如何正确命名关联表(一对一关系)

sql - 使用 IN 关键字查询

mysql - 从两个不同的表中查询同一列

php - 复选框总是返回一个值

php - 如何将数据插入2个不同的表(php mysql)

mysql - NodeJS 和 Mysql。在终止之前调用 connection.end() 是否可以接受?

PHP MySQL 表单分页

javascript - 为每个选项值选择默认数组

vim - (g)vim tab 键在打开文件或分割窗口时没有任何提示

encryption - Java - 如何修复 InvalidKeyException : Wrong algorithm type - RSA