我想检查表中的字段是否已使用NOT NULL定义。
所以让我们说我有以下代码来创建一个SQL查询:
$sql = "CREATE TABLE `testdb`.`test` (`a` INT NULL, `b` INT NOT NULL DEFAULT \'2\');";
现在我想在php中编写一些代码,可以查询表中是否将字段b定义为NOT NULL。我想这里更一般的问题是如何在表中查询其字段的属性。
答案 0 :(得分:4)
您可以使用information schema
中的IS_NULLABLE列INFORMATION_SCHEMA提供对数据库元数据的访问。
元数据是有关数据的数据,例如数据库或表的名称,列的数据类型或访问权限。有时用于此信息的其他术语是数据字典和系统目录。
INFORMATION_SCHEMA是信息数据库,存储有关MySQL服务器维护的所有其他数据库的信息的位置。在INFORMATION_SCHEMA中,有几个只读表。它们实际上是视图,而不是基表,因此没有与之关联的文件。
SELECT column_name,
is_nullable
FROM information_schema.columns
WHERE table_schema = 'testdb'
AND table_name = 'test'
答案 1 :(得分:1)
你走了:
$table = 'my_table';
$result = mysql_query('DESCRIBE `' . $table . '`');
while($item = mysql_fetch_assoc()){
print_r($item); // this will output the properties of the table
}
在$item
中,您现在将拥有一个名为Null
的属性,该属性为NO
或YES
。