Я пытаюсь вставить данные в таблицу (table1) на основе другой (table2), единственная проблема заключается в том, что таблица1 содержит поля, для которых не допускаются пустые значения. Нужно ли создавать эти поля в таблице2, где я извлекаю данные и заполняю их значением?MySQL вставить из другой таблицы, где поля не являются нулевыми
Пример не нулевое поле: пароль
Если я не включить это в моем запросе я получаю сообщение об ошибке, и запись не вставлено, однако если я создаю поле в table2 затем вставить в мой запрос работает нормально , Это кажется немного необычным. Пример запрос ниже:
Пример 1 (без пароля поля в таблице 2):
$insert_new_records_query = "INSERT INTO table1 (first_name, last_name, email_address) ".
"SELECT firstname, lastname, email FROM table2";
Это создает ошибку о том, что должно включать в себя поле пароля.
Пример 2 (поле пароля в таблице 2):
$insert_new_records_query = "INSERT INTO table1 (first_name, last_name, password,
email_address) ".
"SELECT firstname, lastname, password = 'password1', email FROM table2";
Это позволяет запись должна быть создана. Проблема в том, что у меня есть еще много полей, которые не равны нулю в таблице 1, и я не думаю, что мне нужно создать их в таблице 2 как пустые поля и вставить их в мой запрос со значениями, чтобы создать запись. Есть лучший способ сделать это?
Можете ли вы изменить поля «не нуль» в таблице1, чтобы разрешить NULL? –
Что вы пытаетесь выполнить с помощью этой настройки? – thomaux
@ZackMacomber, что не имеет смысла, если поля будут иметь нулевые значения, ограничений не будет, в первую очередь. Если OP не может управлять первой таблицей, но нам не хватает такой информации. – thomaux