我有一个100表的mysql数据库。有些列允许空值,有些不允许。我在php mysqli中动态插入表中的数据。我使用以下代码来插入任何空值:
$value = ($value == "") ? null : $value;
但是,这样做的问题是我得到了Column 'XXX' cannot be null错误。如何确定该列是否支持空值?
请帮帮忙。
发布于 2013-01-21 21:44:05
您可以通过数据库information_schema获取所需的有关数据库结构的所有信息,如下所示(您需要列IS_NULLABLE):
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name'
AND table_schema = 'db_name'
AND column_name = 'col_name'参考:http://dev.mysql.com/doc/refman/5.0/en/columns-table.html
发布于 2013-01-21 21:37:39
在数据库中,为非NULL的字段设置默认值"“(空字符串)。因此,如果您插入空值,MySQL会将其替换为默认的"“。
或
SHOW COLUMNS FOR `table_name`;查看名为Null的字段
发布于 2013-01-21 21:41:27
您可以从information_schema数据库(IS_NULLABLE字段)获取此信息-
SELECT
TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, IS_NULLABLE
FROM
information_schema.COLUMNS
WHERE
TABLE_SCHEMA = 'db_name' AND TABLE_NAME = 'table_name'; -- specify your filterhttps://stackoverflow.com/questions/14439631
复制相似问题