我可以“重新声明”(更新)表添加一些新列吗?

时间:2011-05-31 09:07:02

标签: php mysql sql odbc

我正在使用PHP并且不断声明表格列详细信息。

我目前$sql = "CREATE TABLE ' . $table_name . ' ' . TABLE_COLUMNS;和odbc执行它,其中TABLE_COLUMNS是一个DEFINE()(常量文字字符串)。

这更像是一个SQL问题,而不是编码。我不想改变DEFINE以外的任何代码;我只想(如果可能的话)一个SQL语句创建表(如果它不存在),或者如果它存在则更新它,根据需要插入列,使用空白或zer0或在已存在的行中有意义(必须保留)。

可以这样做,还是我必须编写一些代码,这些代码知道之前的列是什么以及现在的新列是什么? (那么删除列呢?)

1 个答案:

答案 0 :(得分:1)

你不会只用一个定义到达那里。您应该尝试创建表。如果失败,请尝试创建每个列。并不是说在大型表上逐个添加列可能非常耗时,因为MySQL实际上正在重新创建整个表并复制所有数据。

最好获取表的当前结构,解析它并添加所需的列。

请检查此similar question