亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

自動增量表列

自動增量表列

白衣非少年 2019-06-24 09:41:22
自動增量表列使用Postgres,我試著用AUTO_INCREMENT若要在SQL中自動對主鍵編號,請執行以下操作。然而,它給了我一個錯誤。CREATE TABLE Staff   (   ID        INTEGER NOT NULL AUTO_INCREMENT,   Name      VARCHAR(40) NOT NULL,   PRIMARY KEY (ID));錯誤:********** Error **********ERROR: syntax error at or near "AUTO_INCREMENT"SQL state: 42601Character: 63知道為什么嗎?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

Postgres 10或更高版本

serial列(見下文)保持不變。但考慮一下IDENTITY列。Postgres 10實現了這個標準-SQL特性。

CREATE TABLE staff (
   staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
 , staff    text NOT NULL);

類中的基本語法和信息。手冊CREATE TABLE.
詳細說明主要作者PeterEisentraut的博客條目。


IDENTITY列到預先存在的表(填充行或不填充):

ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;

同時使它成為PK(表還不能有PK):

ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;

早期版本中存在一個錯誤,可能導致以下錯誤消息:

ERROR: column "staff_id" contains null values

這是用Postgres 10.2修正的。詳情:

Postgres 9.6或以上

使用serial偽數據類型相反:

CREATE TABLE staff (
   staff_id serial PRIMARY KEY,
 , staff    text NOT NULL);

它自動創建和附加序列對象,并設置DEFAULTnextval()從序列中。它能滿足你的需要。

我也用小寫標識符以我為例。讓你和Postgres的生活更輕松。

更好地使用描述性列名。“id”作為名稱是一種反模式,被一些中間件使用,但并不是描述性的。與“姓名”相似。


查看完整回答
反對 回復 2019-06-24
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

但是,在SQLServer中,您沒有指定使用的是哪個RDBMS,您可以使用以下語法:


CREATE TABLE [dbo].[Staff]

(

[ID] [int] IDENTITY(1,1) NOT NULL,

[Name] VARCHAR(40) NOT NULL,

CONSTRAINT [ID] PRIMARY KEY CLUSTERED 

(

[ID] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]


GO


查看完整回答
反對 回復 2019-06-24
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

在sql server數據庫中,可以使用Identity(1,1)就像這樣:

CREATE TABLE Staff(
    ID INT IDENTITY(1,1) NOT NULL,
    Name VARCHAR(40) NOT NULL,
    PRIMARY KEY (ID));


查看完整回答
反對 回復 2019-06-24
  • 3 回答
  • 0 關注
  • 602 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號