CREATE TABLE Bill(
BillNo INTEGER PRIMARY KEY,
StoreName VARCHAR2(20) FOREIGN KEY,
Shopperid INTEGER FOREIGN KEY,
ArCode CHAR(5) FOREIGN KEY,
Amount INTEGER,
BillDate DATE,
Quantity NUMBER(4) Default 1 Check (Quantity>0)
);
我正在丢失括号错误。有人帮我编写代码吗?
答案 0 :(得分:1)
MySQL中的错误是:
您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'VARCHAR2(20)FOREIGN KEY附近使用, Shopperid整数外键, 第3行的ArCode CHAR(5)'
另一方面,Oracle中的错误是:
ORA-00907:缺少右括号
因此,我得出结论,您正在使用Oracle。解决方法是删除外键引用:
CREATE TABLE Bill (
BillNo INTEGER PRIMARY KEY,
StoreName VARCHAR2(20) ,
Shopperid INTEGER,
ArCode CHAR(5),
Amount INTEGER,
BillDate DATE,
Quantity NUMBER(4) Default 1 Check (Quantity>0)
);
如果要使用外键引用,则它们可能类似于:
CREATE TABLE Bills (
BillNo INTEGER PRIMARY KEY,
StoreName FOREIGN KEY REFERENCES Stores(StoreName),
Shopperid FOREIGN KEY REFERENCES Shoppers(ShopperId),
ArCode REFERENCES ArCodes(ArCode),
Amount INTEGER,
BillDate DATE,
Quantity NUMBER(4) Default 1 Check (Quantity>0)
);
答案 1 :(得分:0)
varchar2
。使用varchar
number
。使用Decimal
references
子句以准确说明此列是针对外键的。Check
之前的逗号这有效。
CREATE TABLE Bill(
BillNo INTEGER PRIMARY KEY,
StoreName VARCHAR(20),
Shopperid INTEGER,
ArCode CHAR(5),
Amount INTEGER,
BillDate DATE,
Quantity decimal(4) Default 1,
Check (Quantity>0)
);
答案 2 :(得分:0)
这适用于 Oracle DB:
CREATE TABLE BILL(
BILLNO NUMBER PRIMARY KEY,
STORENAME VARCHAR2(20) REFERENCES STORE(STORENAME),
SHOPPERID NUMBER REFERENCES SHOPPER(SHOPPERID),
ARCODE CHAR(5) REFERENCES ARTICLE(ARCODE),
AMOUNT NUMBER,
BILLDATE DATE,
QUANTITY NUMBER(4) DEFAULT 1 CHECK(QUANTITY > 0)
);