我想檢查表中的字段是否已用NOT NULL定義。檢查表的字段是否具有NOT NULL屬性集
所以可以說我有下面的代碼來創建一個SQL查詢:
$sql = "CREATE TABLE `testdb`.`test` (`a` INT NULL, `b` INT NOT NULL DEFAULT \'2\');";
現在我想用PHP編寫一些代碼,可以查詢該表是否與否場B定義爲NOT NULL或不。我想這裏更常見的問題是如何查詢表的字段屬性。
我想檢查表中的字段是否已用NOT NULL定義。檢查表的字段是否具有NOT NULL屬性集
所以可以說我有下面的代碼來創建一個SQL查詢:
$sql = "CREATE TABLE `testdb`.`test` (`a` INT NULL, `b` INT NOT NULL DEFAULT \'2\');";
現在我想用PHP編寫一些代碼,可以查詢該表是否與否場B定義爲NOT NULL或不。我想這裏更常見的問題是如何查詢表的字段屬性。
在這裏你去:
$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
。
INFORMATION_SCHEMA使用IS_NULLABLE欄提供訪問數據庫的元數據。
元數據是關於數據的數據,例如數據庫或表的名稱,列的數據類型或訪問權限。有時用於此信息的其他術語是數據字典和系統目錄。
INFORMATION_SCHEMA是信息數據庫,它存儲有關MySQL服務器維護的所有其他數據庫的信息。在INFORMATION_SCHEMA內部有幾個只讀表。它們實際上是視圖,而不是基表,因此沒有與它們關聯的文件。
SELECT column_name,
is_nullable
FROM information_schema.columns
WHERE table_schema = 'testdb'
AND table_name = 'test'
謝謝。 INFORMATION_SCHEMA正是我正在尋找的 – twerdster 2011-04-30 20:31:43
這包括PHP,所以我將它設置爲答案。作爲一個小問題:我注意到當我這樣做時,我得到一個名爲「Extra」的字段。我該如何設置? – twerdster 2011-04-30 20:37:16
額外通常保留'auto_increment'字符串。 – Pentium10 2011-04-30 20:40:09