gpt4 book ai didi

mysql - 向 MySQL 中的表添加一个新的不可空列

转载 作者:行者123 更新时间:2023-11-29 06:43:39 25 4
gpt4 key购买 nike

我有一个事件表,我刚刚为 ticketing_information 创建了一个新表。事件表中的每个事件都应该有一个 ticketing_information,由唯一的 id 引用。我是 sql 的新手,如果这是一个非常基本/重复的问题,请原谅我,但是我应该如何进行迁移,为每个现有事件向 ticketing_information 表添加一个新行,并为事件提供生成的 ticketing_information id ?

如果有帮助,附上我的一些sql:

CREATE TABLE `ticketing_information` (
`id` INT(10) unsigned NOT NULL AUTO_INCREMENT,
`tickets_available` BOOLEAN DEFAULT TRUE NOT NULL,
`ticketing_url` VARCHAR(2000) DEFAULT NULL,
`additional_info_url` VARCHAR(2000) DEFAULT NULL,
PRIMARY KEY (`id`);)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

ALTER TABLE event
ADD COLUMN ticketing_information_id Int(10) unsigned DEFAULT NULL;

(这是一个非常精简的代码版本,但它应该有助于说明我想要的行为)

我想应该是这样的

UPDATE event SET
ticketing_information_id = SELECT `id` FROM `ticketing_information` WHERE <some way of making a new ticketing_information?>;

但我真的不知道我在做什么:)

最佳答案

我将如何执行类似的操作,向现有表添加一个新的不可空列,将是:

  • 在第一步中将该列添加为可为空的,否则您将无法获取 rdbms 来修改表,因为它会违反 not null 约束。

  • 将新列更新为您希望它具有的数据

    UPDATE event e 
    SET e.ticketing_information_id = (SELECT `id` FROM `ticketing_information` WHERE id = e.id)

    您的更新需要告知内部选择,它当前正在更新哪一行,因此您可以在内部选择中仅过滤该特定行的数据。

  • 修改列为非空

关于mysql - 向 MySQL 中的表添加一个新的不可空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19928056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com