代码之家  ›  专栏  ›  技术社区  ›  Drew Rich

在运行alter table之前需要找出表中有某些列

  •  1
  • Drew Rich  · 技术社区  · 15 年前

    我正在为WordPress编写插件。当插件初始化时,我需要找出users表是否包含我试图插入的列,以确保我没有覆盖任何内容。有人能为我提供这样做的语法吗?我想它看起来是这样的:

    SELECT DISTINCT TABLE_NAME 
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE COLUMN_NAME IN ('columnA','ColumnB')
            AND TABLE_SCHEMA='YourDatabase';
    

    谢谢

    2 回复  |  直到 15 年前
        1
  •  2
  •   chaos    15 年前

    如果你只是想找出这个专栏是否存在,我会的。

    SELECT 1
    FROM information_schema.COLUMNS
    WHERE COLUMN_NAME = 'column_name'
    AND TABLE_NAME = 'table_name'
    AND TABLE_SCHEMA = 'database_name'
    LIMIT 1
    
        2
  •  0
  •   dusoft    15 年前

    pseudocode:

    DBQuery("SHOW COLUMNS FROM ".$table);
    while (DBGetRow())
       {
       $columns[]=$access["Field"];
       }