auto-increment相关内容
如何获取 MySQL 中表的当前 AUTO_INCREMENT 值? 解决方案 您可以使用此查询获取所有表数据: SHOW TABLE STATUS FROM `DatabaseName` WHERE `name` LIKE 'TableName' ; 您可以使用此查询准确获取此信息: SELECT `AUTO_INCREMENT`来自 INFORMATION_SCHEMA.TAB
..
我使用 MySQL 的 AUTO_INCREMENT 字段和 InnoDB 来支持事务.我注意到当我回滚事务时,AUTO_INCREMENT 字段没有回滚?我发现它是这样设计的,但是有什么解决方法吗? 解决方案 让我指出一些非常重要的事情: 你永远不应该依赖自动生成的键的数字特征. 也就是说,除了比较它们是否相等(=)或不相等()之外,您不应该做任何其他事情.没有关系运算符(
..
假设我正在我的一个表中执行 MySQL INSERT 并且该表具有设置为 autoincrement 的列 item_id 和主键. 如何让查询在同一个查询中输出新生成的主键item_id的值? 目前我正在运行第二个查询来检索 ID,但考虑到这可能会产生错误的结果,这似乎不是一个好习惯...... 如果这是不可能的,那么确保我检索到正确 ID 的最佳做法是什么? 解决方案
..
如何为从 1001 开始的 MySQL 表中的“id"列设置初始值? 我想做一个插入 "INSERT INTO users (name, email) VALUES ('{$name}', '{$email}')"; 不指定 id 列的初始值. 解决方案 使用这个: ALTER TABLE 用户 AUTO_INCREMENT=1001; 或者如果您还没有添加 id 列,也添
..
我有一个 MySQL 表,其主键字段开启了 AUTO_INCREMENT.在阅读了这里的其他帖子后,我注意到有人遇到了同样的问题,答案也各不相同.有些人建议不要使用此功能,有些人则表示无法“修复". 我有: 表:课程字段:课程ID,课程名称 示例:表中的记录数:18.如果我删除记录 16、17 和 18 - 我希望输入的下一条记录的 courseID 为 16,但是它将是 19,因为最后
..
我有这样的桌子 表id Varchar(45) NOT NULL AUTO_INCREMENT PRIMARY KEY,名称 CHAR(30) 非空, 我想增加我的 id 字段,例如 'LHPL001','LHPL002','LHPL003'... 等.我该怎么做?请让我知道任何可能的方式. 解决方案 如果你真的需要这个,你可以在单独的排序表(如果你不介意的话)和触发器的帮助下实现你的
..
如何重置字段的AUTO_INCREMENT? 我希望它再次从 1 开始计数. 解决方案 您可以通过以下方式重置计数器: ALTER TABLE 表名 AUTO_INCREMENT = 1 对于 InnoDB,您不能将 auto_increment 值设置为小于或等于到目前的最高指数.(引用自 ViralPatel): 请注意,您不能将计数器重置为小于或等于的值到任何已经使用
..
这个问题与我的最后一个问题有某种关系,因为它是同一个项目,但现在我正在尝试又向前迈进了一步. 所以,在我之前的问题中,我只有一张桌子;这次我有两个表:新的第二个表应该包含第一个表的行的相关属性,在 OneToMany 关系中.因此,我在第二个表中存储了一个外键,该表将存储第一个表相关行的行 ID(显然). 问题是这样的:目的是使用相同的形式同时创建两个寄存器(父和子),并且 Paren
..
检查这段使用生成器在 Firebird 表中创建唯一主键的简单代码: CREATE OR ALTER TRIGGER ON_BEFOREINSERT_PK_BOOKING_ITEM FOR BOOKING_ITEM BEFORE INSERT POSITION 0作为开始IF ((NEW.booking_item_id IS NULL) OR (NEW.booking_item_id = 0))
..
我总是听说使用“lastInsertId"(或 mysql_insert_id() 如果您不使用 PDO)是邪恶的.在触发器的情况下,它显然是,因为它可能返回完全不是您的 INSERT 创建的最后一个 ID 的内容. $DB->exec("INSERT INTO example (column1) VALUES ('test')");//通常返回你新创建的 ID.//但是,当 TRIGGER 插
..
我有两个表,和 . Table Cinema 列: id,名称,is_active 桌剧院 列: id,cinema_id 我正在按顺序插入数据库.首先,我将插入 cinema ,然后插入 theater . cinema_id.theater 是引用 cinema.id 的外键.插入 cinema 后,我将数据插入 theater ,但是在将数据插入 cinema_
..
当前,我正在使用此php代码在MongoDB中创建我自己的自动增量ID. $ mongo = new MongoDB \ Driver \ Manager("mongodb://10.1.1.111:27017");$ find = ['_id'=>'campaignid'];$ query =新的MongoDB \ Driver \ Query($ find,[]);$ rows = $ m
..
我有一个带有 gpid AUTO_INCREMENT NOT NULL UNIQUE 列的mysql表. 填充此表(具有50M +条目)后,我已经意识到,如果由于IntegrityError导致事务失败,mysql仍会增加 AUTO_INCREMENT 列. 结果是 AUTO_INCREMENT 列中的间隔,其中 gpid 跳转值(例如,从 gpid == 3 到 gpid == 5
..
我正在尝试建立一个SQLite表,其中rowid从0开始而不是默认值1.最终目标是能够运行第一个INSERT语句并将其插入到rowid 0.对于第一个INSERT,该选项为0. 我尝试了一些与AUTOINCREMENT相关的事情,但没有运气能使它正常工作.我发现的唯一成功方法是插入rowid为-1的行,然后稍后将其删除.这行得通,但是很乱,我想找到一种更干净的方法.我正在使用内置的sqlit
..
重复这个问题 说我有以下表格内容.我想要表中的唯一名称,所以没有重复的名称.插入事物的过程无需检查是否已存在具有此名称的事物. 创建表的东西(id小写主键,名称varchar UNIQUE); 当我插入这样的值时,它起作用.如果“办公桌"已经在东西中,则不会插入. INSERT INTO事物(名称)VALUES(“办公桌")冲突时,请勿执行任何操作; 唯一的问题是冲突.“什么都
..
我想在mongodb集合中有一个附加的ID字段.objectId非常适合获得唯一的ID,但是我需要为用户管理使用较短的ID.这些ID应该类似于 100001 , 100002 等.是否可以通过自动递增获取这些信息? Thx 解决方案 MongoDB没有自动递增功能. 您可以通过在名为"user_sequence"的单独集合中跟踪"id"并在MongoDB中存储自定义函数以获得下
..
我在Postgres 10.10中有下表: 表"public.client"栏|类型|整理|可空|默认--------------------- + --------- + ----------- + ---------- + ------------------------------------------clientid |整数||不为null |nextval('client_clien
..
我想使用liquibase脚本在oracle数据库中添加一个auto_increment列. 我尝试在liquibase中使用 auto_increment 属性: 如
..
在向我的SQL课程的学生演示INSERT语句的同时,我们提出了MySQL 8.0中的一些奇怪行为.请帮助我们了解正在发生的事情.(不需要变通方法,因为我们知道一些变通方法,这是学习而不是生产.谢谢) 我们正在创建一个新数据库,并从著名的 Sakila复制一些行示例数据库,如下所示: CREATE DATABASE辛普森;使用辛普森;创建表`character`((character_id
..
我在SQL表中有一个自动递增的主键,可以说表看起来像这样: CREATE TABLE [Table](-标识符包含一个空格,并使用保留关键字.[ID] [int] IDENTITY(1,1)NOT NULL,[名称] [varchar](50)为NULL,约束[PK__Table]的主键([ID] ASC));ID |名称|1约翰2杰克3比尔4乔 然后我删除第2行杰克: ID |名称|
..