Елементарни SQL заявки
2 отговора
0 прегледа
Елементарни SQL заявки
Как по принцип се правят следните две неща:
1. Добавяне на някакъв запис в таблица, но само ако все още няма запис със същото id.
Първо трябва да се направи SELECT * FROM tbl WHERE id="алабала" и след това ако не е върнат резултат да се прави INSERT със същото условие в WHERE или има друг чалъм?
2. Добавяне на запис в таблица, като различни полета се вземат от няколко таблици, но някои полета се запълват със стойности, които ги няма в табличите.
Четох за INSERT .... SELECT, обаче това върши работа само ако го нямаше но-то в предишното изречение. Правилно ли съм разбрал или нещо не съм допрочел?
1. Добавяне на някакъв запис в таблица, но само ако все още няма запис със същото id.
Първо трябва да се направи SELECT * FROM tbl WHERE id="алабала" и след това ако не е върнат резултат да се прави INSERT със същото условие в WHERE или има друг чалъм?
2. Добавяне на запис в таблица, като различни полета се вземат от няколко таблици, но някои полета се запълват със стойности, които ги няма в табличите.
Четох за INSERT .... SELECT, обаче това върши работа само ако го нямаше но-то в предишното изречение. Правилно ли съм разбрал или нещо не съм допрочел?
Re: Елементарни SQL заявки
1. Ако ID е unique key, и ползваш MySQL един от начините е insert .... on duplicate key update ...
2. Мисля че е по добре да си дръпнеш от където каквото ти трябва и тогава да си генерираш SQL заявката.
Bеer? Mоre?
Плацебото
2. Мисля че е по добре да си дръпнеш от където каквото ти трябва и тогава да си генерираш SQL заявката.
Bеer? Mоre?
Плацебото
Re: Елементарни SQL заявки
1. Ако ползваш MySQL - INSERT IGNORE ... ако ползваш друга СУБД, зависи.
2. "Но"-то няма отношение, тъй като в списъка с полетата на SELECT можеш да пишеш и константи, т.е. можеш спокойно да направиш:
"Договор, подписан с Русия, струва по-малко от хартията, върху която е написан!" - Бисмарк
2. "Но"-то няма отношение, тъй като в списъка с полетата на SELECT можеш да пишеш и константи, т.е. можеш спокойно да направиш:
INSERT INTO xxx (id, name) SELECT id, 'Jenna' FROM yyy;
"Договор, подписан с Русия, струва по-малко от хартията, върху която е написан!" - Бисмарк