0

如果我们在 MySQL 中使用“DESCRIBE table”语法,它会返回有关表的信息,包括字段及其默认值。

http://dev.mysql.com/doc/refman/5.0/en/describe.html

但是,我们如何区分具有空字符串默认值的字段与根本没有默认值的字段之间的区别?

在这两种情况下,它都会为 DESCRIBE 表语句的输出中的“默认”列返回一个空值。

我需要能够使用 PHP 解析数据,以便轻松检测旧表格格式和新表格格式之间的差异。

4

3 回答 3

1

尝试以下操作:

Show create table tablename
于 2012-12-27T18:52:15.720 回答
1

如果您需要为应用程序提供可轻松查询的架构信息,我建议您使用 MySQLINFORMATION_SCHEMA数据库。该数据库提供可查询的元数据表,应该满足您的需求,您可能对该COLUMNS表感兴趣。您可能会像这样查询它:

SELECT * FROM COLUMNS WHERE `TABLE_NAME` = 'your_table' AND `TABLE_SCHEMA` = 'your_database'

当然,您需要考虑限制与您的应用程序关联的数据库用户的访问权限,因为INFORMATION_SCHEMA如果有其他应用程序正在运行,您可能不希望他们看到全部内容(尽管该用户显然能够看到有关其他数据库的信息)表COLUMNS)。

于 2012-12-27T18:53:57.427 回答
0

如果默认值不存在,MySQL 似乎会将该值报告为“NULL”。这意味着如果该字段设置为“NOT NULL”,我们可以假设默认值 NULL 意味着默认值为空或设置为该字段类型的 MySQL 默认值。

于 2012-12-27T19:21:53.833 回答