Изглежда, че може да се опитвате да вмъкнете низа 'NULL'
в char(1)
поле, а не SQL NULL, и имате активиран строг SQL режим, който предотвратява съкращаването му до N
.
Ако можете, бягайте
SHOW CREATE TABLE <your_table_name>
в обвивката на MySQL, за да определите дали вашето целево поле приема NULL. Без контекст (изпълнявате ли това като чист SQL или се свързвате с базата данни от някаква клиентска програма на друг език?) е трудно да се предостави точното решение, но може да имате нещо подобно:
INSERT <your_table_name>
SELECT first_name, 'NULL', last_name
където 'NULL' е просто низ без специално значение, когато това, което възнамерявате да е
INSERT <your_table_name>
SELECT first_name, NULL, last_name
Ето една илюстрация:
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
Малко пънт - извинете, ако няма полза...