- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这个问题和我的old question, Getting last record from mysql有点关系.
根据这些回答,我了解到 SELECT 不能保证以任何特定顺序返回行(当然,不使用 ORDER BY 子句)。
我按照@YaK 的回答并使用以下命令在表格中添加了AUTO_INCREMENT
。
ALTER TABLE maxID ADD sequence INT DEFAULT NULL;
ALTER TABLE maxID ADD INDEX(sequence);
ALTER TABLE maxID MODIFY sequence INT AUTO_INCREMENT;
但是今天我有一个问题。
当 SELECT
不能保证以任何特定顺序返回行时(当然不使用 ORDER BY
子句),THEN 在更改表时,AUTO_INCREMENT
会被正确实现吗?
最佳答案
后台发生的事情取决于引擎类型:
'对于 MyISAM 和 BDB 表,您可以在多列索引的辅助列上指定 AUTO_INCREMENT。在这种情况下,AUTO_INCREMENT 列的生成值计算为 MAX(auto_increment_column) + 1 WHERE prefix=given-prefix。当您想将数据放入有序组中时,这很有用。”
这将在 auto_increment 上创建具有多个值的表,非唯一值。
因此,您真正的意思是为 InnoDB 表设置一个带有 auto_increment 的 PRIMARY KEY(虽然不是必需的)。在没有 order by 子句的情况下进行选择时,简单选择将按主键顺序返回值,因为它按此顺序存储并将使用主键进行排序。
如果您想要特定顺序,请始终指定它,如果需要,请使用主键,但始终指定它。
关于mysql - AUTO_INCREMENT 在我的案例中是否正确实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13247972/
我们有一张 table : id int(11) auto_increment name varchar(255) 自动增量等于 1。插入行: INSERT INTO `projects` ( `id
我有一个大表,其 ID 列设置为 bigint auto_increment。在历史上的某个时候,我们决定在客户端生成一些伪随机数的 ID。 我的问题很简单:鉴于表列仍设置为 auto_increme
我有一个 MySQL 数据库,包含一个带有 auto_increment 主键的表。 考虑以下定义足以满足此示例: create table test(id integer not null auto
我只是想知道如果两个用户同时注册帐户会发生什么。AUTO_INCRMENT id 号是相同还是不同? 最佳答案 自增锁定 自动增量主键的便利性需要与并发进行一些权衡。在最简单的情况下,如果一个事务正在
用于与 MySQL++(C++ 库)一起工作 数据库有一些字段,您可以对其进行 AUTO_INCREMENT。如何知道向表中插入新行时这些字段的值是多少? 最佳答案 虽然 stacker 的答案会起作
我有一个sqlite表: 例如 CREATE TABLE TEST (id integer primary key, number integer unique, name text); 但是,我需要
是否有一种标准化的方法可以在 SQL 中创建一个带有自动增量列(我们称之为 ID)的表,以便我基本上可以在所有数据库中使用它? (例如在 SQL-92 中标准化) 如果是这样 - 如何?如果不是,为什
在 MySQL 表中,id 列设置为 auto_increment,下一个 auto_increment 在 phpmyadmin 中设置为 128,但添加的任何新行都将 127 作为 id 行中的值
我的问题是:我有一个包含 auto_increment 列的表。当我插入一些值时,一切正常。插入第一行:ID 1插入第二行:ID 2 现在我想在 ID 10 处插入一行。 我的问题是,在此之后只有 I
您好,我知道这个问题以前有人问过,但我问的不同,我想要的是在删除表中的一行后重置 auto_increment 列。如果我有 51 行的表并且我删除了第 48 行,我希望第 49 行重置为 48,50
我正在尝试将 AUTO_INCREMENT 设置为某个值,但我遇到了语法错误。我不确定它是什么,因为我查看了文档并且看起来没问题。但是肯定有错误。 编辑 - 抱歉,我正在使用 mysql phpmya
在我的程序中,我将记录插入表tbl_name。但是我收到了“主键重复条目”错误,这让我很困惑,这是我的代码和错误。 表: CREATE TABLE `tbl_name` ( `id` int(20)
我使用 MySQL 的 AUTO_INCRMENT 字段和 InnoDB 来支持事务。我注意到当我回滚事务时,AUTO_INCRMENT 字段没有回滚?我发现它是这样设计的,但是有什么解决方法吗? 最
我使用 MySQL 的 AUTO_INCRMENT 字段和 InnoDB 来支持事务。我注意到当我回滚事务时,AUTO_INCRMENT 字段没有回滚?我发现它是这样设计的,但是有什么解决方法吗? 最
我需要一些有关 MySQL 的帮助。我的 news 表上有 id 列,并且通常为第一个新闻分配 id=1,id= 2 第二个等等。但我希望它以 001 而不是 1 开头,然后是 002, 003 等等
我需要创建一个带有自动递增主键的表,所以我这样做: String sql = "CREATE TABLE Home" + "(id INTEGER not
user 表在 user_id 上定义时未使用 AUTO_INCRMENT。我想将其更改为 AUTO_INCRMENT 字段。但问题是 user_id 被外键约束中的许多表引用。 我们可以在不删除所有
我正在使用 MySQL 进行数据库项目,并且我的一个表使用组合键作为 PK,entry_ID+user_ID(FK)。 这是表结构: | address_list | CREATE TABLE `ad
我有一些使用带有自动增量功能的主键的MySQL表,这一切似乎都是在第一次插入记录时发生的,但是当我删除中间的任何记录时,它不会重置自动增量计数器,而是继续使用最后一个ID . 例如,我已插入具有以下
我有如下表格 个人信息 CREATE TABLE personalInfo(userid BIGINT AUTO_INCREMENT PRIMARY KEY) 专利信息 CREATE TABLE pa
我是一名优秀的程序员,十分优秀!