关于mysql:不带id postgreSQL的插入命令

Insert command without id postgreSQL

本问题已经有最佳答案,请猛点这里访问。

在mySQL中,我能够做到

1
INSERT INTO table_name (column_name1, column_name2) VALUES('John', 'Doe);

正如您所看到的,我不必提及ID,我将如何在postgreSQL中执行此操作。

谢谢


方法#1:
您可以将ID列声明为Serial
在这种情况下,它将为您的列创建隐式序列。

示例:

1
2
3
4
5
6
CREATE TABLE MyTable
(
   ID     serial   NOT NULL,
   column1 type,
   column2 type
}

方法#2:
或者,您可以手动定义序列,然后将其下一个值指定为列的"默认值"。

1
2
3
4
5
6
7
8
CREATE SEQUENCE my_sequence START 1;

CREATE TABLE MyTable
       (
       ID     integer   DEFAULT nextval('my_sequence'::regclass) NOT NULL,
       column1 type,
       column2 type
       }

这不是因为发生了mysql。 您可以进行此类查询,因为您已将id设置为auto_increment

实际上,您可以使用串行伪数据类型在postgreSQL中执行相同的操作

主列串行的示例