Вставить значения в таблицу, где одно значение представляет значение в другой таблице - PullRequest
0 голосов
/ 05 мая 2020

У меня есть таблица 'item' в базе данных postgresql, содержащая: (itemid, typeid, barcode, serialnumber)

CREATE TABLE item
    (itemid SERIAL PRIMARY KEY,
    typeid INTEGER,
    barcode TEXT UNIQUE,
    serial TEXT,
    eventid INTEGER,
    out_noteid INTEGER,
    in_noteid INTEGER,
    temp SMALLINT,
    FOREIGN KEY (typeid) REFERENCES type(typeid),
    FOREIGN KEY (eventid) REFERENCES event(eventid)
)

У меня есть другой тип таблицы, созданный

CREATE TABLE type
  (typeid SERIAL PRIMARY KEY,
  bookingid TEXT UNIQUE,
  description TEXT,
  category TEXT,
  replacementprice TEXT,
  forcelabel SMALLINT,
  image BYTEA
); 

У меня есть данные из другого приложения, представленные как: (bookingid, barcode, serial) , они импортируются в мое приложение в python из файла csv и будут соответствовать строкам ('666666-', 'barcode8739127', 'serial491257h45')

Я не могу найти правильный sql запрос в postgresq; чтобы вставить эти данные в таблицу 'item' как (typeid, barcode, serialnumber), ссылаясь на bookingid на typeid.

Образец данных в type может быть typeid='2', bookingid='666666-'

Итак, данные Я хочу вставить в товар ('2', 'barcode8739127', 'serial491257h45') as (typeid, barcode, serial)

1 Ответ

0 голосов
/ 05 мая 2020

Попробуйте что-то вроде:

INSERT INTO item
(
typeid, barcode, serial
)
VALUES
(
(SELECT typeid FROM type WHERE bookingid = '666666 -'),
'barcode8739127',
'serial491257h45'
)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...