在DuckDB中创建自增主键

Mar*_*yne 7 sql duckdb

许多数据库引擎支持自动递增主键,我想在我的新 DuckDB 方法中使用这种方法,但我不知道如何设置它。例如,在 MySQL 中:

CREATE TABLE Persons (
    Personid int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (Personid)
); 
Run Code Online (Sandbox Code Playgroud)

Ora*_*Dev 8

创建一个表:

CREATE TABLE Persons (
    Personid integer primary key,
    LastName varchar(255) not null,
    FirstName varchar(255),
    Age integer
);
Run Code Online (Sandbox Code Playgroud)

创建一个序列:

CREATE SEQUENCE seq_personid START 1;
Run Code Online (Sandbox Code Playgroud)

插入一些数据:

INSERT INTO Persons VALUES (nextval('seq_personid'), 'Doe', 'John', 99);
Run Code Online (Sandbox Code Playgroud)

  • 您也可以使用默认值,例如“Personid 整数主键默认 nextval('seq_personid')”,它更接近 PostgreSQL、MySQL 等的自动递增/串行行为。 (8认同)
  • 是的。要获得更完整的答案:或者,尝试以下操作: 1. 创建一个序列: ```sql CREATE SEQUENCE seq_personid START 1; ```` 2. 创建表:````sql CREATE TABLE Persons ( Personid INTEGER PRIMARY KEY DEFAULT NEXTVAL('Publisher_Id_Seq'), LastName VARCHAR(255) NOT NULL, FirstName VARCHAR(255), Age INTEGER ); `` 3. 插入一些数据:````sql INSERT INTO Persons VALUES ('Doe', 'John', 99); ```` (2认同)