Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Inserindo NULL em colunas NOT NULL com valor padrão


Com base na minha pesquisa, eu diria que poderia ser uma coisa "você" e uma coisa "MySQL". Verifique suas definições de tabela com SHOW CREATE TABLE table_name; . Anote todos os campos definidos com NOT NULL .

O Manual de referência do MySQL 5.6:sintaxe 13.2.5 INSERT afirma:

Isso implicaria que não importa qual modo SQL você está usando. Se você estiver fazendo uma linha única INSERT (conforme seu código de exemplo) e inserindo um NULL valor em uma coluna definida com NOT NULL , não é suposto funcionar.

Ao mesmo tempo, ironicamente, se você simplesmente omitir o valor da lista de valores, o manual do MySQL diz o seguinte, e o modo SQL importa nesse caso:

Assim, você não pode ganhar!;-) Brincando. A coisa a fazer é aceitar que NOT NULL em um campo de tabela MySQL realmente significa Não aceitarei um valor NULL para um campo enquanto estiver executando uma única linha INSERT , independentemente do modo SQL .'

Tudo o que foi dito, o seguinte do manual também é verdade:

Então, tenha coração. Defina seus padrões na lógica de negócios (objetos) e deixe a camada de dados seguir a direção disso. Padrões de banco de dados parecem uma boa ideia, mas se eles não existissem, você sentiria falta deles? Se uma árvore cair na floresta...