один SQL-оператор с двумя внешними ключами - PullRequest
0 голосов
/ 02 ноября 2019

enter image description here

Итак, я знаю userID заранее, а также booksID, я хочу вставить comments в comments таблицу.

Я пришел с этим запросом:

Insert into comments Set ? Where BookIdeaID=?"; 

Но я получил эту ошибку:

У вас есть ошибка в вашем синтаксисе SQL;обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с \ 'Где BookIdeaID = \' 0 \ '\' в строке 1 ',

sqlState:' 42000 ',

index: 0,

sql: 'Вставить в комментарии. Установить комментарии = comments = \' hello \ ', userID = 9 Где BookIdeaID = \' 0 \ ''}

1 Ответ

1 голос
/ 02 ноября 2019

Если, как вы сказали, вы ищете запрос на вставку, синтаксис выглядит следующим образом:

insert into comments (userID, booksID, comments) values(?, ?, ?);

Первый знак вопроса обозначает userID, второй - booksID(не BookIdeaID, поскольку этот столбец принадлежит другой таблице), а третий - для строки comments. Я бы предположил, что столбец первичного ключа id автоматически увеличивается, поэтому я не присваиваю ему значение (оно будет вычислено MariaDB).

Остерегайтесь этого, поскольку вы, очевидно, определили ограничения внешнего ключа дляuserID и booksID (что хорошо), значения, которые вы вставляете в эти столбцы, должны уже существовать в указанных таблицах, в противном случае вставка завершится неудачей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...