Postgresql

將 SQLlite 數據庫轉換為 PostgreSQL,但數據庫仍然無法工作

  • December 26, 2020

我原來的 SQLite 數據庫是這樣開始的:

#PRAGMA foreign_keys = off;

#BEGIN TRANSACTION;

然後是一個帶有AUTO_INCREMENT欄位的表:

CREATE TABLE inputs 
(
 id INTEGER PRIMARY KEY AUTO_INCREMENT UNIQUE NOT NULL, 
 name TEXT, 
 inputid INT, 
 connectionid INT, 
 type INT, 
 posx DOUBLE, 
 posy DOUBLE
);

我試圖改變AUTO_INCREMENT

我試過這個:

BEGIN;

CREATE TABLE inputs
(
 id SERIAL,
 name TEXT, 
 inputid INT, 
 connectionid INT, 
 type INT, 
 posx DOUBLE, 
 posy DOUBLE
);

COMMIT;

Aserial並不意味著該列也是主(或唯一)鍵。在現代 Postgres 版本中,identity優先serial

如手冊中所述,沒有數據類型double- 它被稱為double precision

所以表定義應該是:

create table inputs
(
 id integer primary key generated always as identity,
 name text, 
 inputid int, 
 connectionid int, 
 type int, 
 posx double precision, 
 posy double precision
);

引用自:https://dba.stackexchange.com/questions/281981