|
insert в связанные таблицы
|
|||
---|---|---|---|
#18+
Всем привет! Имеется две таблицы. Системные блоки: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Помещения: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Они, соответственно, связаны по id_room. Также есть еще таблицы, связанные с "sb", но о них в данном случае не говорим. Задача простая: вставить запись в обе таблицы, а именно вставить данные в следующие поля: sb.sb_name, room.room_type, room.num, room.floor. Выполняю запрос: Код: sql 1. 2.
На то вылезает ошибка: Ошибка при выполнении SQL запроса к базе данных 'database': FOREIGN KEY constraint failed В чем может быть проблема? :( PS: все телодвижения выполняю в SQLiteStudio ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 13:01 |
|
insert в связанные таблицы
|
|||
---|---|---|---|
#18+
1. ошибка при выполнении запроса 2? Код: sql 1. 2.
2. что вернет last_insert_rowid() после первого запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 13:08 |
|
insert в связанные таблицы
|
|||
---|---|---|---|
#18+
Winnipuh, да, ошбка после второго запроса. Данная переменная возвращает id последней добавленной записи ( https://www.sqlite.org/c3ref/last_insert_rowid.html) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 13:14 |
|
insert в связанные таблицы
|
|||
---|---|---|---|
#18+
G00dWINeWinnipuh, да, ошбка после второго запроса. Данная переменная возвращает id последней добавленной записи ( https://www.sqlite.org/c3ref/last_insert_rowid.html) не совсем так, но я в курсе, а что она возвращает в вашем случае ? ид добавленной записис, которая должна быть FK во втором запросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 13:19 |
|
insert в связанные таблицы
|
|||
---|---|---|---|
#18+
Winnipuh, да, так и планировалось использовать данную конструкицю ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 16:20 |
|
insert в связанные таблицы
|
|||
---|---|---|---|
#18+
G00dWINe, Убери UNIQUE в определении id полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 20:54 |
|
insert в связанные таблицы
|
|||
---|---|---|---|
#18+
White OwlG00dWINe, Убери UNIQUE в определении id полей. Это действие проблему не решило. Проблема была в, видимо, баге SQLiteStudio, который не позволяет выполнять сразу две команды, написанные через ";" в одном SQL-редакторе запросов. Если выполнить данные команды раздельно (в разных SQL-редакторах), то все работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2016, 06:56 |
|
insert в связанные таблицы
|
|||
---|---|---|---|
#18+
У меня тут возник следующий вопрос! Как избавиться от дублирования записей в дочерней таблице? Допустим, мы добавляем записи этим запросом, но в одном помещении находится несколько компьютеров? Если выполнить два раза эту sql-конструкцию, то в таблицу sb внесутся две записи, ссылающиеся на разные записи в room (которые в room будут одинаковыми, различия будут лишь в id). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2016, 07:34 |
|
insert в связанные таблицы
|
|||
---|---|---|---|
#18+
G00dWINeУ меня тут возник следующий вопрос! Как избавиться от дублирования записей в дочерней таблице? Допустим, мы добавляем записи этим запросом, но в одном помещении находится несколько компьютеров? Если выполнить два раза эту sql-конструкцию, то в таблицу sb внесутся две записи, ссылающиеся на разные записи в room (которые в room будут одинаковыми, различия будут лишь в id).Нет, тогда ты получишь фигню на втором компьютере. Код: sql 1. 2. 3.
Так что, проще всего не используй эту функцию напрямую. Делай что-то в духе: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2016, 20:19 |
|
|
start [/forum/topic.php?fid=54&msg=39142838&tid=2008631]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 291ms |
total: | 416ms |
0 / 0 |