這是我第一次使用oracle SQL,並且在創建具有唯一鍵的表時遇到問題。Oracle - 如何創建一個具有自動增量唯一鍵ID的表格
我不明白爲什麼這個自動遞增的ID是不工作:
ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
下一個問題我已經是爲什麼我在我的每個語句得到一個錯誤:
ORA-00922: missing or invalid option
這裏是我的代碼:
--
-- Sequence for aout incrment
--
CREATE SEQUENCE IF NOT EXISTS AUTO_INC_SEQ
START WITH 1
INCREMENT BY 1;
--
-- Table Person
--
CREATE TABLE IF NOT EXISTS FITNESS_PERSON
(
ID NUMBER NOT NULL PRIMARY KEY,
FIRST_NAME VARCHAR NOT NULL,
LAST_NAME VARCHAR NOT NULL,
NICK_NAME VARCHAR NOT NULL,
DATE_BIRTH DATE NOT NULL,
PASSWORD VARCHAR NOT NULL,
CONSTRAINT UNIQUE(NICK_NAME)
);
--
-- Table BMR
--
CREATE TABLE IF NOT EXISTS FITNESS_BMR
(
ID NUMBER NOT NULL PRIMARY KEY,
VALUE FLOAT NOT NULL,
VALUE_DATE DATE NOT NULL
);
--
-- M:N for BMR and Person
--
CREATE TABLE IF NOT EXISTS FITNESS_BMR_PERSON
(
BMR_ID NUMBER NOT NULL,
PERSON_ID NUMBER NOT NULL,
FOREIGN KEY(BMR_ID) REFERENCES FITNESS_BMR(ID),
FOREIGN KEY(PERSON_ID) REFERENCES FITNESS_PERSON(ID),
CONSTRAINT BMR_PER PRIMARY KEY(BMR_ID, PERSON_ID)
);
什麼是做到這一點的正確方法(創建一個表並與AUT遞增密鑰是唯一的)。
Oracle不支持'IF NOT EXISTS'用於'CREATE TABLE'或「CREATE SEQUENCE」。它也沒有'AUTO_INCREMENT'列。刪除這些,你會得到更多。至於'IF NOT EXISTS',只需在每個CREATE TABLE之前放一個'DROP TABLE whatever' - 如果該表尚不存在,你將會得到一個錯誤,但它是無害的。 – 2013-04-11 19:16:51
如果該表確實存在,並且其中的數據被刪除,則很難將其描述爲無害。 – 2013-04-11 19:19:36
好的thx。這幫助了很多^^ 我該如何解決我的自動增量問題。因爲我希望我的ID通過插入新數據自動增加。 – user1882812 2013-04-11 19:24:49