草庐IT

主键自增

全部标签

mysql自增不插入

我有一个带有自动递增字段的mysql表。我正在使用自动递增计数器作为跨数据库的ID生成器。我需要一种方法来增加计数器,获取新数字但不插入任何数据。有什么简单的方法吗? 最佳答案 如果您将其用作ID生成器,那么(除了更改表格之外)您必须插入一些内容才能获得下一个值。在不插入任何数据的情况下执行此操作的最简单方法是执行INSERT,然后调用LAST_INSERT_ID,然后发出ROLLBACK。这将回滚插入,但下一个ID仍将递增。 关于mysql自增不插入,我们在StackOverflow上

java - 由于主键,数据库插入速度慢

得到一个MySQL数据库,其中包含一个包含基于邮政编码和门牌号的值的表。因此,选择主键为邮政编码和门牌号,因为这些是要搜索的字段。该数据库包含大约1000万条记录。一个特定的邮政编码由大约100000个不同的门牌号组成,插入速度极慢(每10000条记录需要1小时)。编程语言是Java,我在10000个批处理中使用准备好的语句,自动提交为false。表的结构如下:+-----------------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+--------------

mysql - 是否可以通过主键合并两个表?

我有两个表,我需要合并它们,它们是:CREATETABLEIFNOTEXISTS`legacy_bookmarks`(`id`int(11)NOTNULLAUTO_INCREMENT,`url`text,`title`text,`snippet`text,`datetime`datetimeDEFAULTNULL,PRIMARYKEY(`id`),KEY`datetime`(`datetime`),FULLTEXTKEY`title`(`title`,`snippet`))和:CREATETABLEIFNOTEXISTS`legacy_links`(`id`mediumint(11)N

mysql - 唯一键可以用作主键那么为什么我们保留另一个主键?

CREATETABLEIFNOTEXISTS`tbl_users`(`id`int(11)NOTNULLAUTO_INCREMENT,`username`varchar(50)COLLATElatin1_general_ciNOTNULL,`passd`varchar(50)COLLATElatin1_general_ciNOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`username`(`username`))ENGINE=InnoDBDEFAULTCHARSET=latin1COLLATE=latin1_general_ciAUTO_INCREMENT=1;我

MySQL自增关系

所以我在vb.net中编写一个Web应用程序,我发现自己在概念上有点难以理解特定的数据库问题。本质上,我有2个不同的表单"template"。其中一个是,用户填写一堆文本字段并提交,然后全部发送到数据库。第二个模板是相同的,只是它跟踪了一些额外的信息,因此它向数据库提交了更多信息。我制作了一个表来跟踪两个模板共享的所有信息,另一个表存储了第二个模板的所有“额外内容”,而不是有一对包含很多重复列的表或一个包含一堆空值的表有。由此产生的问题是,我需要一种方法将两者的数据重新配对,以便搜索表单,然后将信息从数据库中提取出来。集体表格由代理自动递增键标识,该键是“共享”表的主键。我试图建立与“

mysql - ClearDB 自增

我正在使用ClearDB托管我的RubyonRails应用程序的MySQL数据库。今天我观察到表的ID以10的步长跳跃,从1开始:1、11、21、31、41..我搜索了一下,发现了这个:“我猜你的auto_increment_increment被设置为1以外的东西,因为复制。对于复制表,由于潜在的键冲突,不能使用1。”在ClearDB论坛上,我找到了相同的答案。好的,但问题是:如果id以10为单位跳跃10,它是否会增加得非常快,从而非常快地达到11位数字的整数限制?如果出现这种情况怎么办?ID转到2、12、22、32、42,从2开始,然后是3..?这里有使用ClearDB的人可以回答我

使用主键 IN 语句删除时的 Mysql Innodb 死锁

寻求帮助以了解为什么会出现这种僵局。我已经阅读了MySQL文档和许多关于死锁相关问题的SO问题,但我显然遗漏了一些东西。这是有问题的表:CREATETABLE`table_queue`(`id`int(11)NOTNULLAUTO_INCREMENT,PRIMARYKEY(`id`))ENGINE=InnoDB;它有一大堆其他列已被删除以保持简单(没有一个是外键)。两个或多个线程正在执行以下查询:DELETEqFROMtable_queueqWHEREq.idIN(165765,165770,165782,165787,165791..);IN语句最多可以有1,000个值。如您所见,它

mysql - 试图从 MySQL 表中删除主键

编辑:不确定为什么将其标记为重复项。我得到的错误是不同的我正在尝试删除主键定义,但由于某种原因收到错误消息。mysql>ALTERTABLE`aux_sponsors`DROPPRIMARYKEY;ERROR1091(42000):Can'tDROP'PRIMARY';checkthatcolumn/keyexistsmysql>descaux_sponsors;+-------------+--------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-------------+--

mysql - 主键中列的顺序,性能

出于性能原因,我有一个小问题。我正在使用symfony和doctrine。我总是在我的实体中使用注释,最近决定切换到yml文件。所以我从外部导出了所有实体并生成了yml文件。我将yml文件与数据库进行了比较。生成了一个diff文件,它将主键放在某些表上,然后添加它们,只是以不同的顺序。这些主键有多个列。似乎只有当其中一列是外键时才会发生这种情况。问题是我是否可以对我的数据库执行更改并切换关键列的顺序,或者这是否会影响我的性能? 最佳答案 MySQL中的主键是通过唯一索引实现的。事实上,对于当今的大多数(如果不是全部)SQLdbms来

mysql:在重复键(多个唯一的,而不是主键)更新上插入 ~。不起作用

CREATETABLEIFNOTEXISTS`table`(`id`int(11)NOTNULLDEFAULT'0',`uniq_id`int(11)NOTNULLDEFAULT'0',`uniq_cat`varchar(20)NOTNULLDEFAULT'0',`value`varchar(255)NOTNULL);ALTERTABLE`table`ADDPRIMARYKEY(`id`),ADDUNIQUEKEY`uniq_id`(`uniq_id`,`uniq_cat`);INSERTINTO`table`(uniq_id,uniq_cat,value)VALUES("1","1"