CREATE TABLE P_OWNER(
OWNERID CHAR(5) NOT NULL,
LNAME VARCHAR2(50) NOT NULL,
FNAME VARCHAR2(30) NULL,
SSN CHAR(9) NULL,
EMAIL VARCHAR2(50) NULL,
CONSTRAINT P_OWNER_PK PRIMARY KEY(OWNERID),
CONSTRAINT P_OWNER_AK1 ALTERNATE KEY(SSN),
CONSTRAINT P_OWNER_AK2 ALTERNATE KEY(EMAIL)
);
CREATE TABLE P_PROPERTY(
PROPERTYID CHAR(5) NOT NULL,
STREET1 VARCHAR2(50) NOT NULL,
STREET2 VARCHAR2(50) NULL,
CITY VARCHAR2(50) DEFAULT 'FITCHBURG',
STATE CHAR(2) DEFAULT 'MA',
ZIP CHAR(10) NULL,
SQFOOTAGE NUMBER(5,0) NULL,
HAS_AC CHAR(1) NULL,
ISHOUSE CHAR(1) NOT NULL,
CONSTRAINT P_PROPERTY_PK PRIMARY KEY(PROPERTYID),
CONSTRAINT P_PROPERTY_ADDRESS_AK1 ALTERNATE KEY(CITY, STATE, STREET1, STREET2, ZIP)
);
Error at Command Line:8 Column:57
Error report:
SQL Error: ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
0
A
回答
2
你想要一個獨特的密鑰,而不是替代
CREATE TABLE P_OWNER(
OWNERID CHAR(5) NOT NULL,
LNAME VARCHAR2(50) NOT NULL,
FNAME VARCHAR2(30) NULL,
SSN CHAR(9) NULL,
EMAIL VARCHAR2(50) NULL,
CONSTRAINT P_OWNER_PK PRIMARY KEY(OWNERID),
CONSTRAINT P_OWNER_AK1 UNIQUE(SSN),
CONSTRAINT P_OWNER_AK2 UNIQUE(EMAIL)
);
CREATE TABLE P_PROPERTY(
PROPERTYID CHAR(5) NOT NULL,
STREET1 VARCHAR2(50) NOT NULL,
STREET2 VARCHAR2(50) NULL,
CITY VARCHAR2(50) DEFAULT 'FITCHBURG',
STATE CHAR(2) DEFAULT 'MA',
ZIP CHAR(10) NULL,
SQFOOTAGE NUMBER(5,0) NULL,
HAS_AC CHAR(1) NULL,
ISHOUSE CHAR(1) NOT NULL,
CONSTRAINT P_PROPERTY_PK PRIMARY KEY(PROPERTYID),
CONSTRAINT P_PROPERTY_ADDRESS_AK1 UNIQUE(CITY, STATE, STREET1, STREET2, ZIP)
);
2
問題是ALTERNATE KEY
嘗試UNIQUE
CREATE TABLE P_OWNER(
OWNERID CHAR(5) NOT NULL,
LNAME VARCHAR2(50) NOT NULL,
FNAME VARCHAR2(30) NULL,
SSN CHAR(9) NULL,
EMAIL VARCHAR2(50) NULL,
CONSTRAINT P_OWNER_PK PRIMARY KEY(OWNERID),
CONSTRAINT P_OWNER_AK1 UNIQUE (SSN),
CONSTRAINT P_OWNER_AK2 UNIQUE (EMAIL)
);
CREATE TABLE P_PROPERTY(
PROPERTYID CHAR(5) NOT NULL,
STREET1 VARCHAR2(50) NOT NULL,
STREET2 VARCHAR2(50) NULL,
CITY VARCHAR2(50) DEFAULT 'FITCHBURG',
STATE CHAR(2) DEFAULT 'MA',
ZIP CHAR(10) NULL,
SQFOOTAGE NUMBER(5,0) NULL,
HAS_AC CHAR(1) NULL,
ISHOUSE CHAR(1) NOT NULL,
CONSTRAINT P_PROPERTY_PK PRIMARY KEY(PROPERTYID),
CONSTRAINT P_PROPERTY_ADDRESS_AK1 UNIQUE(CITY, STATE, STREET1, STREET2, ZIP)
);
0
的alternate key (or secondary key)
是一個不選擇任何候選人鍵是主鍵( PK)。你不能在Oracle中創建一個備用密鑰,它只是概念。
+0
你可以將它們創建爲唯一密鑰。 –
相關問題
- 1. 「缺少右括號」錯誤
- 2. 缺少右括號錯誤
- 3. SQL ORA-00907:缺少右括號錯誤
- 4. SQL錯誤:缺少右括號
- 5. SQL - 缺少右括號錯誤
- 6. Sql - 「缺少右括號」錯誤說明
- 7. SQL錯誤:ORA-00907:缺少右括號
- 8. 缺少右括號oracle sql
- 9. 缺少右括號SQL
- 10. PL/SQL缺少右括號
- 11. SQL - 缺少右括號
- 12. 「缺少右括號」SQL
- 13. Oracle sql缺少右括號
- 14. SQL缺少右括號
- 15. oracle ORA-00907錯誤:缺少右括號
- 16. 錯誤:ORA-00907:缺少右括號
- 17. Oracle錯誤 - ORA-00907:缺少右括號
- 18. 「缺少右括號」MySQL錯誤
- 19. Oracle錯誤缺少右括號
- 20. 錯誤創建表「缺少右括號」
- 21. ORA-00907:缺少右括號錯誤
- 22. 爲什麼「缺少右括號」錯誤?
- 23. 錯誤 - ORA-00907:缺少右括號
- 24. SQL錯誤:ORA-00907:缺少右括號 - 無法找到錯誤
- 25. 缺少右括號?
- 26. 缺少右括號
- 27. 缺少右括號
- 28. 缺少右括號
- 29. oracle sql錯誤 - 右括號缺失
- 30. ORACLE SQL缺少右括號差語法
錯誤本身是不言而喻的 – Abubakkar
@Abu該錯誤並不總是意味着你忘了關閉括號,所以很多時間,它不是.. – Scotch
你是否試圖在同一時間創建表?嘗試一次運行一個create table語句。 – Andrew