Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   sql запрос (http://www.flasher.ru/forum/showthread.php?t=72216)

artcraft 21.11.2005 18:41

sql запрос
 
в базе есть таблица с двумя полями: A и B
оба поля в таблице не уникальные

Код:

+---+---+
| A | B |
+---+---+
| 0 | 0 |
| 0 | 1 |
| 1 | 0 |
+---+---+

нельзя допустиь появление двух записей с одинаковыми значениями в полях A и B одновременно - все ряды должны быть уникальными

например нельзя вставить | 0 | 0 | - такая запись уже есть

вопрос: как добиться такого результата делая только один запрос к базе?

спасибо

artcraft 21.11.2005 23:36

ответ найден - уникальная пара полей:

CREATE TABLE `new` (
`a` INT( 10 ) NOT NULL ,
`b` INT( 10 ) NOT NULL ,
UNIQUE (`a` ,`b`)
) TYPE = MYISAM ;

ffffff 21.11.2005 23:54

а потом лучае не уникальности будеть выдаватьсяч ошибка.

artcraft 22.11.2005 00:03

А что, есть другие идеи?

Nirva 22.11.2005 01:20

2ffffff прости, а уникальность достигнута не будет? или для тебя лучше, чтобы тебе вообще система сообщала результаты запроса?
любитель блин пхп4.

artcraft 22.11.2005 02:53

Цитата:

Сообщение от ffffff
а потом в случае неуникальности будеть выдаваться ошибка.

нет не будет, если вставлять так:
INSERT IGNORE INTO `new` ( `a` , `b` ) VALUES ( 0, 1);

Цитата:

If you specify the keyword IGNORE in an INSERT with many value rows, any rows that duplicate an existing PRIMARY or UNIQUE key in the table are ignored and are not inserted. If you do not specify IGNORE, the insert is aborted if there is any row that duplicates an existing key value.
RTFM!


Часовой пояс GMT +4, время: 11:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.