Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstawianie null do char(1)

Wygląda na to, że próbujesz wstawić ciąg 'NULL' do char(1) zamiast wartości NULL SQL i masz włączony ścisły tryb SQL, co zapobiega obcinaniu tego do N .

Jeśli możesz, uruchom

SHOW CREATE TABLE <your_table_name>

w powłoce MySQL, aby określić, czy pole docelowe akceptuje wartości NULL. Bez kontekstu (czy uruchamiasz to jako czysty SQL, czy łączysz się z bazą danych z jakiegoś programu klienckiego w innym języku?) trudno jest podać dokładne rozwiązanie, ale możesz mieć coś takiego:

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

gdzie 'NULL' jest po prostu łańcuchem bez specjalnego znaczenia, kiedy to, co chcesz, to

INSERT <your_table_name>
SELECT first_name, NULL, last_name

Oto ilustracja:

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

Trochę punt - przepraszam, jeśli nie ma sensu ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Generować GUID w MySQL dla istniejących danych?

  2. Wyświetl plik przechowywany w bazie danych za pomocą php w przeglądarce

  3. Dynamicznie ładuj informacje do modalu Twitter Bootstrap

  4. Zastąp symbol wieloznaczny MySQL

  5. Jak wyłączyć dynamiczne opcje wyboru pola na podstawie danych pochodzących z dwóch tabel w bazie mysql?