Det lyder som om du forsøger at indsætte strengen 'NULL'
ind i char(1)
felt, snarere end en SQL NULL, og du har streng SQL-tilstand aktiveret, hvilket forhindrer, at dette afkortes til N
.
Hvis du er i stand, så kør
SHOW CREATE TABLE <your_table_name>
i MySQL-skallen for at bestemme, om dit målfelt accepterer NULL'er. Uden kontekst (kører du dette som ren SQL, eller opretter du forbindelse til databasen fra et klientprogram på et andet sprog?) er det svært at give den nøjagtige løsning, men du kan have noget som dette:
INSERT <your_table_name>
SELECT first_name, 'NULL', last_name
hvor 'NULL' simpelthen er en streng uden nogen særlig betydning, når det du har til hensigt er
INSERT <your_table_name>
SELECT first_name, NULL, last_name
Her er en 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
Lidt af et slag - undskyld hvis det ikke nytter ...