未定义PostgreSQL id列
我是PostgreSQL的新手,我正在处理这个数据库 我得到了一个导入的文件,我正在尝试获取具有特定ID的行。但ID未定义,如图中所示: 那么我如何访问这个ID呢?我想使用如下SQL命令:未定义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
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
,以删除膨胀并在之后更新查询计划器的统计信息。并可能使该列成为新的主键
要使其成为一个成熟的专栏:
见:
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不熟悉,所以我不知道,非常感谢你