我使用以下 SQL 陳述句創建了一個空表。我的理解(基于本教程:https ://www.postgresqltutorial.com/postgresql-tutorial/postgresql-serial/ )SERIAL PRIMARY KEY會自動為每個新行提供一個自動遞增的 id:
CREATE TABLE "shema".my_table
(
id SERIAL PRIMARY KEY,
transaction text NOT NULL,
service_privider text NOT NULL,
customer_id text NOT NULL,
value numeric NOT NULL
)
WITH (
OIDS = FALSE
);
ALTER TABLE "shema".my_table
OWNER to admin;
現在我正在查詢另一個表,并希望將該查詢的結果保存到my_table. 查詢的結果輸出以下模式:
transaction
service_provider
customer_id
value
意思是my_table減號的模式id。當我嘗試執行時:
INSERT into my table
Select {here is the query}
然后我收到一個錯誤 column "id" is of type integer but expression is of type text。我將其解釋為 sql 查詢正在查找id列并且找不到它。如何在my_table不明確說明id數字的情況下插入資料但id為每一行自動生成?
uj5u.com熱心網友回復:
始終提及您要插入的列:
INSERT INTO schemaname.my_table("transaction", service_privider, customer_id, value)
SELECT ?, ?, ?, ?;
如果您不這樣做,您的代碼將在現在或將來某個地方中斷。
順便說一句,transaction是保留字,盡量使用更好的列名。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484629.html
標籤:sql PostgreSQL
