我有一個只有2列id
(在NUMBER
類型)和Name
(在類型VARCHAR2
)名爲Users
表。所有列不可爲空將值插入列而不通過參數傳遞它?
我創建了一個SQL過程只需要一個參數(新用戶名)如下:
CREATE OR REPLACE PROCEDURE insert_new_user
(
this_name VARCHAR2;
)
AS
BEGIN
INSERT INTO Users
VALUES (this_name);
COMMIT;
END;
/
程序編譯,但有錯誤如下:錯誤ORA-00947:不足夠的價值。
當我運行它,如下所示:
BEGIN
insert_new_user ('Bob');
END
/
它拋出一個PL/SQL編譯錯誤。
如何設置id
列自動放入下一個數字而不需要通過參數傳遞?
理想的輸出將是一個場景,如:
ID名稱
1亞當
2本
3鮑勃
哪裏Bob
是新的用戶行插入到user
表和3
是在id
列中自動添加的數字。
Id列是標識列嗎? –
是的,這是PK – 5120bee
主鍵和身份不一樣。標識列值是自動增量的。在你的情況下,如果id列是主鍵但不是自動增量,那麼當你在表中插入行時,你必須爲它提供一個值。來自@Dan的回答應該提供更多關於自動增量列的細節。 –