我有一个大型数据库,其中包含一堆表和列,其中一些允许 NULL,而另一些则不允许 NULL..
我最近刚刚决定标准化我的方法并为所有空字段等使用 NULL。因此我需要在我的所有表中设置所有列以允许 NULL(当然,主要的除外)
我可以编写一个 php 代码来循环这个,但我想知道是否有一种快速的方法可以通过 SQL 来完成它?
问候
您可以使用系统表中的元数据来确定您的表、列、类型等。然后使用它,动态构建一个包含您的 UPDATE SQL 的字符串,并将表名和列名连接到其中。然后执行。
我最近发布了一个解决方案,该解决方案允许 OP 搜索包含特定值的列。代替任何人提供更完整的答案,这应该会给你一些关于如何解决这个问题的线索(或者至少,研究什么)。您需要提供表名或加入它们,然后执行与此类似的操作,除了您要检查类型而不是值(并且您构建的动态 SQL 将构建更新,而不是选择)。
我将在几个小时内进一步帮助您解决您的具体情况......如果到那时您对此(或其他答案)没有运气,那么我将提供更完整的内容。
编辑:刚刚意识到您已将其标记为 mySql... 我的解决方案是针对 MS SQL Server。假设 MySql 允许您查询其元数据并执行动态生成的 SQL 命令,原则应该是相同的(因此我将保留这个答案,因为我认为您会发现它很有用)。