gpt4 book ai didi

mysql - MySQL复制无数据表保持自增

转载 作者:行者123 更新时间:2023-11-29 00:12:54 26 4
gpt4 key购买 nike

我在将我的 MySQL 表复制到新表时遇到了麻烦,不包括数据,使用查询:

CREATE TABLE foo SELECT * FROM bar WHERE 1=0

表已复制,结构和列名称已正确插入。但是 auto_increment 字段和主键字段存在问题,因为它们没有像在原始表中那样插入。 (字段不再是 PK 和 AI)我正在使用 MySQL 5.5 和 PMA 3.5.8.2

我希望有人能帮助我。

非常感谢。

最佳答案

您可能需要运行 2 个查询。

CREATE TABLE foo LIKE bar;
ALTER TABLE foo AUTO_INCREMENT = (SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DatabaseName' AND TABLE_NAME = 'bar');

您必须将 DatabaseName 替换为您的数据库名称。这是未经测试的,但我认为它会为您提供您正在寻找的东西。

所以我尝试测试上面的查询,ALTER TABLE 语句似乎由于选择而失败。可能有更好的方法,但对我有用的方法是将自动增量值设置为一个变量,然后准备语句并执行它。

例如,您可以先创建表格:

CREATE TABLE foo LIKE bar;

然后将您的 ALTER TABLE 语句设置为一个变量

SET @ai = CONCAT("ALTER TABLE foo AUTO_INCREMENT =", (SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'databasename' AND TABLE_NAME = 'bar'));

最后,您将准备并执行语句。

PREPARE query FROM @ai;
EXECUTE query;
DEALLOCATE PREPARE query;

关于mysql - MySQL复制无数据表保持自增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24191087/

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