dzh2000
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору sldaac Цитата: если связывать две табл. по этому полю, то удалив запись с RowID=5 ," Иванов" след запись с RowID=6, "Петров" получает знач RowID=5, "Петров" (или я ошибаюсь??) | Следующая запись получит ROWID=6 (это не аналог RecNo из Delphi, не путайте). И если Вы оставили в дочерней (detail) таблице записи, относящиеся к удаленному "Иванову", то Вы нарушили ссылочную целостность БД, и ответственность лежит на Вас. Реализуйте каскадное удаление через триггеры, проблем не будет. Кстати, Вы можете вообще не пользоваться ROWID, а создать полноценное автоинкрементное поле. К примеру, скрипт ниже создает таблицу A с таким полем ID: Код: CREATE TABLE A ( ID integer PRIMARY KEY AUTOINCREMENT NOT NULL, NAME varchar(100) NOT NULL DEFAULT '' ); | Кстати, в данном случае ID и ROWID будут тождественны. Добавлено: Цитата: в SQLite мне не понравился автоинкремент, вернее его реализации, кто-то посоветовал использовать RecId (так кажется наз-ся) - хотя это тупо. | А мне не нравится автоинкремент в Firebird, потому что его просто нет | Всего записей: 1576 | Зарегистр. 18-01-2002 | Отправлено: 14:00 07-04-2009 | Исправлено: dzh2000, 14:07 07-04-2009 |
|