Елементарни SQL заявки

2 отговора 0 прегледа
#1

Елементарни SQL заявки

Как по принцип се правят следните две неща:
1. Добавяне на някакъв запис в таблица, но само ако все още няма запис със същото id.
Първо трябва да се направи SELECT * FROM tbl WHERE id="алабала" и след това ако не е върнат резултат да се прави INSERT със същото условие в WHERE или има друг чалъм?
2. Добавяне на запис в таблица, като различни полета се вземат от няколко таблици, но някои полета се запълват със стойности, които ги няма в табличите.
Четох за INSERT .... SELECT, обаче това върши работа само ако го нямаше но-то в предишното изречение. Правилно ли съм разбрал или нещо не съм допрочел?

Отговор
в отговор на БM21 #2

Re: Елементарни SQL заявки

1. Ако ID е unique key, и ползваш MySQL един от начините е insert .... on duplicate key update ...
2. Мисля че е по добре да си дръпнеш от където каквото ти трябва и тогава да си генерираш SQL заявката.

Bеer? Mоre?
Плацебото
Отговор
в отговор на БM21 #3

Re: Елементарни SQL заявки

1. Ако ползваш MySQL - INSERT IGNORE ... ако ползваш друга СУБД, зависи.

2. "Но"-то няма отношение, тъй като в списъка с полетата на SELECT можеш да пишеш и константи, т.е. можеш спокойно да направиш:

INSERT INTO xxx (id, name) SELECT id, 'Jenna' FROM yyy;


"Договор, подписан с Русия, струва по-малко от хартията, върху която е написан!" - Бисмарк
Отговор