![]() |
|
Модераторы: skyboy |
![]()
|
|
| sanek1990 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
Здравствуйте подскажите пожалуйста что это за ошибка! на что SQL ругается?
![]() Сам скрипт
Это сообщение отредактировал(а) sanek1990 - 19.10.2009, 17:37 |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Чуть ниже ведь всё написано
Не заморачивайся на коде ошибки, а читай сообщение об ошибке... Команда не валидная... Той таблицы на которую ссылается ... что то там ... нету ... Не скажу точно, но возможно перед тем как создавать ограничения необходимо поставить commit; на создание таблицы. Т.е. разбить скрипт на два: первый - создает таблицу и сохраняет изменения, а второй - создает ограничения. И ещё не знаком с синтаксисом InterBase, но мне кажется, что некоректно описаны внешние ключи. На что они ссылаются? На какое поле какой таблицы? -------------------- Слава Україні! |
|||
|
||||
| sanek1990 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
тут все в пределе одной таблицы должно быть. Есть первичный ключ Primary Key (Tab_No) и нужно создать два вторичных для связи с двумя таблицами это ключи по полям Post_Code и Section_No. На самом деле до этого создавал уже эту таблицу все работало именно с этим скриптом то есть создавался и первичный и вторичные ключи. затем таблицы все удалил и создал новую бд, и вот такое стало выскакивать. Если создать таблицу задав только первичный ключ Primary Key (Tab_No) то все содается на раз. а вот вторичный ключи не хочет создавать.
они ссылаются на поля этой же таблицы.
вот тут не совсем понял только начинаю изучать SQL)) то есть надо применить commit только к блоку
или ко всему скрипту?? |
||||||
|
|||||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Не обращай внимание... Хм Ограничение на внешний ключ это примерно так: говоришь СУБД, что такое то поле является внешним ключем и поэтому, ты в дальнейшем его заполнять не собираешся, а данные пусть СУБД заполняет сама, при этом берет их от туда то... Это очень-очень упрощенно и даже немножко не правильно А тут:
получается, что Post_Code - внешний ключ, но от куда данные брать (на что ссылаться)? После имени таблицы нужно указать и имя столбца в скобках... P.S. Гипотетически я понимаю, что внешний ключ может ссылаться на ту же таблицу в которой он находится, но на практике я такого ещё не встречал... Ничего не перепутали? -------------------- Слава Україні! |
||||
|
|||||
| sanek1990 |
|
||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
да действительно перепутал. не понял до конца что такое foreign key сейчас прочитал внимательнее документацию все встало на свои места
и ссылатся на таблицу sections поле Code в в случае такой команды
так что вняв Вашим словам
получил следующий исправленный скрипт
который благополучно исполнился беза всяких ошибок! Спасибо Вам большое за подсказки! зы. Posts Sections это у меня в лабораторной такие названия))) |
||||||||||||
|
|||||||||||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Незачто Если вопрос решен, то тему можно пометить решённой -------------------- Слава Україні! |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
Тема закрыта, но все же ...
На практике это применяется в "древовидных" структурах. Например:
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |