Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memasukkan null ke dalam char(1)

Sepertinya Anda mencoba memasukkan string 'NULL' ke dalam char(1) bidang, bukan SQL NULL, dan Anda mengaktifkan mode SQL ketat, yang mencegahnya terpotong menjadi N .

Jika Anda bisa, jalankan

SHOW CREATE TABLE <your_table_name>

di shell MySQL untuk menentukan apakah bidang target Anda menerima NULL. Tanpa konteks (apakah Anda menjalankan ini sebagai SQL murni, atau menghubungkan ke database dari beberapa program klien dalam bahasa lain?) sulit untuk memberikan solusi yang tepat, tetapi Anda mungkin memiliki sesuatu seperti ini:

INSERT <your_table_name>
SELECT first_name, 'NULL', last_name

di mana 'NULL' hanyalah sebuah string tanpa arti khusus, ketika yang Anda inginkan adalah

INSERT <your_table_name>
SELECT first_name, NULL, last_name

Berikut ilustrasinya:

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

Sedikit tendangan - maaf jika tidak ada gunanya ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memformat larik PHP untuk klausa SQL IN

  2. Kelompokkan baris berdasarkan Interval Band Tahun

  3. Apa yang setara dengan SQL Server dari INET_ATON?

  4. Bagaimana cara membuat fungsi agregat tersimpan MySQL?

  5. Ekstrak bidang tertentu dari file teks