未定义PostgreSQL id列

未定义PostgreSQL id列,postgresql,Postgresql,我是PostgreSQL的新手,我正在处理这个数据库 我得到了一个导入的文件,我正在尝试获取具有特定ID的行。但ID未定义,如图中所示: 那么我如何访问这个ID呢?我想使用如下SQL命令: SELECT * from table_name WHERE ID = 1; 如果行的任何顺序都适合您,只需根据当前的任意排序顺序添加行号即可: CREATE SEQUENCE tbl_tbl_id_seq; ALTER TABLE tbl ADD COLUMN tbl_id integer DEFAU

我是PostgreSQL的新手,我正在处理这个数据库

我得到了一个导入的文件,我正在尝试获取具有特定ID的行。但ID未定义,如图中所示:

那么我如何访问这个ID呢?我想使用如下SQL命令:

SELECT * from table_name WHERE ID = 1;
如果行的任何顺序都适合您,只需根据当前的任意排序顺序添加行号即可:

CREATE SEQUENCE tbl_tbl_id_seq; 
ALTER TABLE tbl ADD COLUMN tbl_id integer DEFAULT nextval('tbl_tbl_id_seq');
新的默认值将在过程中自动填充。您可能需要运行
VACUUM FULL ANALYZE tbl
,以删除膨胀并在之后更新查询计划器的统计信息。并可能使该列成为新的
主键

要使其成为一个成熟的专栏:

见:

如果行的任何顺序都适合您,只需根据当前的任意排序顺序添加行号即可:

CREATE SEQUENCE tbl_tbl_id_seq; 
ALTER TABLE tbl ADD COLUMN tbl_id integer DEFAULT nextval('tbl_tbl_id_seq');
新的默认值将在过程中自动填充。您可能需要运行
VACUUM FULL ANALYZE tbl
,以删除膨胀并在之后更新查询计划器的统计信息。并可能使该列成为新的
主键

要使其成为一个成熟的专栏:

见:


您看到的只是pgAdmin显示的行号,它们并没有真正存储在数据库中

如果需要表的人工数字主键,则必须显式创建它

例如:

CREATE TABLE mydata (
   id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
   obec text NOT NULL,
   datum timestamp with time zone NOT NULL,
   ...
);
然后,要从CSV文件复制数据,可以运行

COPY mydata (obec, datum, ...) FROM '/path/to/csvfile' (FORMAT 'csv');

然后会自动填充
id
列。

您看到的只是pgAdmin显示的行号,它们并没有真正存储在数据库中

如果需要表的人工数字主键,则必须显式创建它

例如:

CREATE TABLE mydata (
   id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
   obec text NOT NULL,
   datum timestamp with time zone NOT NULL,
   ...
);
然后,要从CSV文件复制数据,可以运行

COPY mydata (obec, datum, ...) FROM '/path/to/csvfile' (FORMAT 'csv');

然后自动填充
id
列。

因为没有定义id,但是:您想如何定义它?关系数据库的表中没有自然的行顺序。因为没有定义ID,但是:您想如何定义它?关系数据库的表中没有自然的行顺序。正如我所说,我对postgresql不熟悉,所以我不知道,非常感谢我说,我对postgresql不熟悉,所以我不知道,非常感谢我说,我对postgresql不熟悉,所以我不知道,非常感谢我说,我对postgresql不熟悉,所以我不知道,非常感谢你