Es klingt, als ob Sie versuchen, die Zeichenfolge 'NULL'
in die char(1)
Feld und nicht ein SQL NULL, und Sie haben den strikten SQL-Modus aktiviert, der verhindert, dass dies auf N
.
Wenn Sie dazu in der Lage sind, führen Sie
SHOW CREATE TABLE <your_table_name>
in der MySQL-Shell, um festzustellen, ob Ihr Zielfeld NULLs akzeptiert. Ohne Kontext (führen Sie dies als reines SQL aus oder verbinden Sie sich mit der Datenbank von einem Client-Programm in einer anderen Sprache aus?) ist es schwierig, eine genaue Lösung zu finden, aber vielleicht haben Sie so etwas:
INSERT <your_table_name>
SELECT first_name, 'NULL', last_name
wobei 'NULL' einfach eine Zeichenkette ohne besondere Bedeutung ist, wenn Sie Folgendes beabsichtigen
INSERT <your_table_name>
SELECT first_name, NULL, last_name
Hier ist eine Illustration:
mysql> CREATE TABLE my_table ( middle_initial CHAR(1) NULL );
mysql> INSERT INTO my_table SELECT 'NULL';
mysql> SHOW WARNINGS;
Level Code Message
Warning 1265 Data truncated for column 'middle_initial' at row 1
mysql> SELECT * FROM my_table;
middle_initial
--------------
N
mysql> set sql_mode = 'STRICT_TRANS_TABLES';
mysql> INSERT INTO my_table SELECT 'NULL';
ERROR 1406 (22001) at line 16: Data too long for column 'middle_initial' at row 1
mysql> INSERT INTO my_table SELECT NULL;
mysql> SELECT * FROM my_table;
middle_initial
--------------
N
NULL
Ein kleiner Versuch - entschuldigen Sie, wenn es nichts nützt ...