У меня есть две таблицы с поля, как показано ниже: -Вставка данных из одной таблицы в другую в SQL
tbl_emp -> идентификатор (автоматического генерирования, автоматическое приращение, первичный ключ), имя, DOB tbl_login - -> id (ссылается на id в tbl_emp, первичный ключ), пароль
У меня есть веб-форма, которая читает имя, пароль и дату рождения (dob) и кнопку отправки. При нажатии кнопки «Отправить» данные вставляются в первую таблицу, а также во вторую таблицу. Было бы легко вставить данные во второй столбец, если бы у меня был способ получить доступ к полю «id» из первой таблицы.
Запрос у меня есть: -
insert into tbl_emp (name,dob) values(@name, @dob);
insert into tbl_login (id,password) values((select id from tbl_emp where id=(select id from tbl_emp where id=id)), @password)
Проблема, с которой я сталкиваюсь с вышеупомянутой студенткой является:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
Hay , как использовать эту вставку в значения tbl_login (id, password) ((выберите MAX (id) из tbl_emp, где name = @ name AND dob = @ dob), @p assword) –
@Thiha Проблема с запросом, который вы сказали, заключается в том, что могут быть (могут быть) разные люди, которые могут иметь одно и то же имя и одну и ту же дову. – user2625672
yep правильный. Таким образом, вы можете использовать First INSERT, затем SELECT (id), затем INSERT. На основе MSSQL, прежде чем ваша первая транзакция будет завершена, будет зафиксирована блокировка чтения или запись. –