gpt4 book ai didi

mysql自动增量问题

转载 作者:行者123 更新时间:2023-11-30 00:59:20 25 4
gpt4 key购买 nike

我有一个 mysql 数据库,其中包含以下表格:

create table post
(
id int primary key auto_increment,
group_id int,
post varchar(2000),
person_id int,
foreign key(person_id) references person(person_id) on update cascade on delete cascade,
foreign key(group_id) references groups(group_id) on update cascade on delete cascade
);
create table comment
(
id int primary key auto_increment,
p_id int,
person_id int,
comment varchar(2000),
foreign key(p_id) references post(id) on update cascade on delete cascade,
foreign key(person_id) references person(person_id) on update cascade on delete cascade
);

此处帖子 ID 和评论 ID 未正确递增。我多次创建和删除这些表,每次都将初始 id 作为一些随机值,并且每个插入都采用任何随机值。

例如。有时需要 552,有时需要 3。

我还在 mysql 命令行上检查了以下内容:

show variables like 'auto_inc%';

并且值 auto_increment_increment 和 auto_increment_offset 都设置为 1。

对此的任何帮助都将受到赞赏,因为这正在开展关键的业务工作。

最佳答案

我不知道这是否能解决您的问题,因为您的插入语句引用了另外两个表(persongroups),这些表未在您的代码中显示(因此我不知道这些 table 是怎么回事)。

但是,既然你写了

Any help on this is appreciated as this is holding critical biz work.

...这里有一些帮助/建议:

我不确定这些表是如何成功创建的,因为当我尝试该代码时遇到很多错误(但这不是重点),但是这里有一个更有效的方法(<强>注意:我只能假设对表 persongroups 的引用意味着那些表已存在):

编辑:创建表后首先尝试此操作:

FLUSH TABLES;
ALTER TABLE `comment` AUTO_INCREMENT = 1;
ALTER TABLE `post` AUTO_INCREMENT = 1;

如果这没有帮助,这是上面提到的更有效的方法:

CREATE TABLE `comment` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`p_id` int(11) DEFAULT NULL,
`person_id` int(11) DEFAULT NULL,
`comment` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `p_id` (`p_id`),
KEY `person_id` (`person_id`)
);

CREATE TABLE `post` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`group_id` int(11) DEFAULT NULL,
`post` varchar(2000) DEFAULT NULL,
`person_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `group_id` (`group_id`),
KEY `person_id` (`person_id`)
);

ALTER TABLE `comment`
ADD CONSTRAINT `comment_fk_1`
FOREIGN KEY (`p_id`)
REFERENCES `post` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE;

ALTER TABLE `comment`
ADD CONSTRAINT `comment_fk_2`
FOREIGN KEY (`person_id`)
REFERENCES `person` (`person_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;

ALTER TABLE `post`
ADD CONSTRAINT `post_fk_1`
FOREIGN KEY (`person_id`)
REFERENCES `comment` (`person_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;

ALTER TABLE `post`
ADD CONSTRAINT `post_fk_2`
FOREIGN KEY (`group_id`)
REFERENCES `groups` (`group_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;

关于mysql自动增量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20279594/

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