Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли зделать ето одним запросом, без использования SP ? / 10 сообщений из 10, страница 1 из 1
05.11.2004, 10:48
    #32770104
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
Привет всем!!!
Можно ли зделать ето одним запросом, без использования SP ?

чтото на подобии етого
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT 

IF(
(SELECT F1 FROM TTest WHERE F1= 1  AND F2= 15 ) IS NULL,

(INSERT INTO TTest(F1,F2,F3)VALUES( 1 , 15 , 222 )),

(UPDATE TTest SET F3= 222  WHERE F1= 1  AND F2= 15 )

);
...
Рейтинг: 0 / 0
05.11.2004, 13:00
    #32770489
kulpavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
Код: plaintext
1.
2.
INSERT INTO TTest(F1,F2,F3)       
VALUES( 1 , 15 , 222 )
ON DUPLICATE KEY UPDATE F3= 222 

Где F1 и F2 - PK или UI

Если вы указываете ON DUPLICATE KEY UPDATE (новшество в MySQL 4.1.0), и производится вставка строки, которая вызывает ошибку дублирующегося первичного (PRIMARY) или уникального (UNIQUE) ключа, то вполняется UPDATE старой строки
...
Рейтинг: 0 / 0
05.11.2004, 13:02
    #32770497
kulpavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
а еще

Код: plaintext
1.
2.
REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] tbl_name [(col_name,...)]
        VALUES (expression,...),(...),...

Оператор REPLACE работает точно так же, как INSERT, за исключением того, что если старая запись в данной таблице имеет то же значение индекса UNIQUE или PRIMARY KEY, что и новая, то старая запись перед занесением новой будет удалена
...
Рейтинг: 0 / 0
06.11.2004, 19:26
    #32771795
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
СПАСИБО БОЛЬШОЕ!!!
...
Рейтинг: 0 / 0
08.11.2004, 14:15
    #32772433
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
А если я использую
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE TTest(
    F1 BIGINT NOT NULL auto_increment ,   
    F2 BIGINT NOT NULL,
    F3 BIGINT NOT NULL,
   PRIMARY KEY(F1,F2) 
) TYPE=InnoDB;

INSERT INTO TTest(F1,F2,F3)       
VALUES(NULL, 15 , 222 )
ON DUPLICATE KEY UPDATE F3= 222 

и после выполнения запроса мне нужно взять сгенерированое F1.

А когда выполнилось условие ON DUPLICATE KEY то LAST_INSERT_ID() не подходит :(

И что опять же таки придется делать еще один запрос ? :(
...
Рейтинг: 0 / 0
09.11.2004, 13:14
    #32773422
kulpavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
а replace пробовали?
...
Рейтинг: 0 / 0
09.11.2004, 14:26
    #32773639
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
Okramи после выполнения запроса мне нужно взять сгенерированое F1.
А когда выполнилось условие ON DUPLICATE KEY то LAST_INSERT_ID() не подходит :(разумеется, ведь нового ид не генерилось, какой же такой сгенерённый ид тебе нужен?
...
Рейтинг: 0 / 0
10.11.2004, 13:54
    #32775461
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
kulpavelа replace пробовали?
там ключ F1 будет пересоздан, а мне надо чтобы если такое поле там есть то ничего с ним не делать, а только возвратить F1



maXmoразумеется, ведь нового ид не генерилось, какой же такой сгенерённый ид тебе нужен?

Я ето знаю, но возможно ли ето както обойти

например, чтото етого ???
Код: plaintext
1.
2.
3.
4.
SET @rF1= 0 ;
INSERT INTO TTest(F1,F2,F3)       
VALUES(NULL, 15 , 222 )
ON DUPLICATE KEY UPDATE F3= 222  , @rF1=F1
...
Рейтинг: 0 / 0
10.11.2004, 20:24
    #32776351
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
разве переменными можно прямо в запросе пользоваться?

ma X mo
...
Рейтинг: 0 / 0
12.11.2004, 14:06
    #32779677
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли зделать ето одним запросом, без использования SP ?
так я же и спрашиваю, можно ли чтото в етом роде зделать.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли зделать ето одним запросом, без использования SP ? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]