MySql将列中的所有字段更新为其默认值

时间:2014-11-23 02:18:23

标签: mysql default-value

我希望能够使用update语句为home_country字段设置默认值。

这是数据库表:

CREATE TABLE `countries` (
  `id` smallint(6) NOT NULL AUTO_INCREMENT,
  `name` varchar(70) COLLATE utf8_unicode_ci NOT NULL,
  `home_country` tinyint(1) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
) ENGINE=MyISAM;

我正在使用:

$sql = "UPDATE countries SET home_country = DEFAULT WHERE id = 1"

但出于某种原因,它并不适合我。 在上面的国家/地区,ID为1应将home_country值设置为1,而所有其他值重置为0

2 个答案:

答案 0 :(得分:3)

最好直接运行该值

UPDATE countries SET home_country = 0 WHERE id = 1;

如果你想动态设置默认值,你就必须像这样做一些疯狂的事情

UPDATE countries SET home_country =
(SELECT column_default FROM information_schema.columns
WHERE table_schema=DATABASE()
AND table_name ='countries'
AND column_name = 'home_country') WHERE id = 1;

答案 1 :(得分:0)

您可以改用DEFAULT()函数。

$sql = "UPDATE countries SET home_country = DEFAULT(home_country) WHERE id = 1"

https://www.geeksforgeeks.org/mysql-default-function/