如何设置所有列? PostgreSQL 中的默认值等于 null
我想将多个表中的每一列的默认值设置为 Null。我可以在 information_schema.columns.column_default 下查看默认约束。当我尝试跑步时 更新 information_schema.columns set column_default = Null where table_name = '[table]'
它抛出“错误:无法更新视图提示:您需要无条件的 ON UPDATE DO INSTEAD 规则。”
解决这个问题的最佳方法是什么?
I would like to set the default value for every column in a number of tables equal to Null. I can view the default constraint under information_schema.columns.column_default. When I try to runupdate information_schema.columns set column_default = Null where table_name = '[table]'
it throws "ERROR: cannot update a view HINT: You need an unconditional ON UPDATE DO INSTEAD rule."
What is the best way to go about this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要为每一列运行
ALTER TABLE
语句。永远不要尝试通过操作系统表来执行类似的操作(即使您找到了正确的表 - INFORMATION_SCHEMA 仅包含对真实系统表的视图),但是您可以根据以下内容生成所有需要的 ALTER TABLE 语句: information_schema 视图中的数据:
将输出保存为 SQL 脚本,然后运行该脚本(不要忘记提交更改)
You need to run an
ALTER TABLE
statement for each column. Never ever try to do something like that by manipulating system tables (even if you find the correct one - INFORMATION_SCHEMA only contains view to the real system tables)But you can generate all needed
ALTER TABLE
statements based on the data in the information_schema views:Save the output as a SQL script and then run that script (don't forget to commit the changes)