gpt4 book ai didi

php - 如果表只有一列,如何检查 sql?

转载 作者:行者123 更新时间:2023-11-29 07:26:29 27 4
gpt4 key购买 nike

在我的 php 代码中,我想像这样从表中删除列:

function delete_table_column_db( $table_name, $column_attrs ){
global $wpdb;
$res = $wpdb->query( "ALTER TABLE " . $table_name . " DROP " . $column_attrs['name'] );

if( $res === false ){
error_log( sprintf("The column %s could not be deleted for the table %s", $column_attrs['name'], $table_name ) );
}
}

但是如果表格只有一列,这个函数就会出错:

ERROR 1090 (42000): You can't delete all columns with ALTER TABLE; use DROP TABLE instead

所以如果它是表的最后一列,我想DROP TABLE。为此,我需要检查它是否是最后一个表列。有办法做到这一点吗?

最佳答案

要计算表格中的列数,我们需要使用 INFORMATION_SCHEMA.COLUMNS .以下解决方案仅在用户有权访问 INFORMATION_SCHEMA 表时才有效。

可以通过如下方式获取表格的总列数:

SELECT COUNT(*) AS no_of_columns
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '$your_table_name' AND
TABLE_SCHEMA = '$your_database_name'

所以可以先用这个查询,获取列数。如果它大于 1,那么您可以继续 ALTER TABLE .. DROP COLUMN 查询。

information_schema.columns 表中一些值得注意的列是:

TABLE_SCHEMA - The name of the schema (database) to which the table containing the column belongs.

TABLE_NAME - The name of the table containing the column.

COLUMN_NAME - The name of the column.

关于php - 如果表只有一列,如何检查 sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53436385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com