SQL插入避免列名称

时间:2011-07-26 13:59:43

标签: sql hibernate insert

在SQL插入中,通常我们在SQL中指定列的名称。有没有办法动态生成?基本上,如果我们指定列的名称,那么明天如果添加新的col,则涉及代码更改。我怎么能避免这个?

我正在考虑使用follg解决方案 -

如何通过获取列的名称 select information_name,* from information_schema.columns where table_name =''order by ordinal_position; &安培;然后用列创建INSERT语句?这样我们就不在SQL中指定列名... 有什么想法吗?

4 个答案:

答案 0 :(得分:1)

如果填写所有值,则只能省略列名,但如果添加新列,也会中断。

如果指定名称,则可以根据需要添加新列。如果您保持查询原样,它们将自动分配其默认值。

如果您不希望它们具有默认值,则无论如何都需要编辑代码。当然,您可以动态生成SQL并分配默认值,但这正是您的RDBMS所做的事情!我没有看到你的问题。

答案 1 :(得分:0)

您可以使用新列的默认值。

答案 2 :(得分:0)

假设您说您将从其他位置获取列值作为输入,那么您可以将列名保存在配置文件中,如属性文件。然后,如果您愿意假设排序总是匹配,只需将输入值与文件中的列名匹配,添加列只是意味着获取一个新值以匹配新列。

答案 3 :(得分:0)

我通过获取列的名称来解决这个问题 select information_name,* from information_schema.columns where table_name =''order by ordinal_position; &安培;然后使用列创建INSERT语句。通过这个我避免在查询中指定列名