Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [SQLite] Вставка 
:(
    Опции темы
neic
Дата 7.10.2010, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Добрый день.
Не много изучал SQL года 2 назад и уже подзабыл его. Вот сейчас делаю проект и столнкулся с небольшим вопросом.

Допустим есть 2 таблицы (T1 и T2).

Код

CREATE TABLE T1(
    ID INTEGER PRIMARY KEY;
    NAME VARCHAR(20) NOT NULL
);

CREATE TABLE T2(
    ID INTEGER REFERENCES T1(ID) PRIMARY KEY;
    TEL VARCHAR(20) NOT NULL
);


Что мне нужно изменить в запросе, чтобы в столбец ID таблицы T2 нельзя было вставить несуществующее значение в столбце ID таблицы T1.

Т.е. в T1 2 записи:
1   name1
2   name2

И чтобы в таблице T2 нельзя было сделать такой запрос:
Код

INSERT INTO T2 VALUES (3,'8888888888')


а такой можно:
Код

INSERT INTO T2 VALUES (2,'8888888888')
INSERT INTO T2 VALUES (1,'8888888881')
--кроме этих двух вариантов, все остальные не возможны



Это сообщение отредактировал(а) neic - 7.10.2010, 19:39
PM MAIL WWW ICQ Skype   Вверх
neic
Дата 7.10.2010, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Решил вопрос триггером. А есть такая возможность сделать сабж при создании таблицы, т.е. без триггера?
PM MAIL WWW ICQ Skype   Вверх
Zloxa
Дата 7.10.2010, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(neic @  7.10.2010,  19:37 Найти цитируемый пост)
чтобы в столбец ID таблицы T2 нельзя было вставить несуществующее значение в столбце ID таблицы T1.

называется это ограничение внешнего ключа (foreign key constraint), но поддерживает ли SQLite - мне не ведомо.

Обычно синтаксис создания выгдядит примерно так:
Код

alter table t2 add constraint t2_t1_fk foreign key (ID) references t1(ID)




--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.1215 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.