ऐसा लगता है कि आप 'NULL'
. स्ट्रिंग डालने का प्रयास कर रहे होंगे char(1)
. में SQL NULL के बजाय फ़ील्ड, और आपके पास सख्त SQL मोड सक्षम है, जो इसे N
में छोटा करने से रोकता है ।
अगर आप सक्षम हैं, तो दौड़ें
SHOW CREATE TABLE <your_table_name>
MySQL शेल में यह निर्धारित करने के लिए कि आपका लक्ष्य क्षेत्र NULLs को स्वीकार करता है या नहीं। बिना किसी संदर्भ के (क्या आप इसे शुद्ध 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
थोड़ा सा पंट - अगर कोई फायदा नहीं हुआ तो क्षमा करें ...