标签: auto-increment

使用Notepad ++我怎样才能使一个数字递增的宏类型情况?

例如我有大约500行.在每行的开头我想添加一个数字.所以在第1行我想要"1)"然后第2行我想要"2)"

我知道我可以在n ++中做一个宏,但它不会是增量的.有没有办法做到这一点?

macros increment notepad++ auto-increment

19
推荐指数
3
解决办法
2万
查看次数

Postgresql SERIAL的工作方式不同吗?

我有一个带有SERIAL ID的postgres表.

id (serial) name age
Run Code Online (Sandbox Code Playgroud)

插入通常发生在Web应用程序中.

我手动插入两条新记录,将id设置为max(id)+1****

在这两个插入后,当Web应用程序插入2个记录时,它会出现重复键错误.

仅2记录.之后一切正常.

问题是 - 为什么我的手动插入没有增加序列?

自动增量和串行是否不同?

我在这里错过了什么?MySQL或任何其他SQL有同样的问题吗?

mysql sql postgresql auto-increment

18
推荐指数
2
解决办法
2万
查看次数

如何填写自动递增字段中的"漏洞"?

我已经阅读了一些有关此内容的帖子但没有涉及此问题.

我猜它不可能,但无论如何我都会问.

我有一个超过50,000个寄存器的表.这是一个旧表,其中发生了各种插入/删除操作.

也就是说,大约300个寄存器中有一些"漏洞".即:...,1340,1341,1660,1661,1662,......

问题是.是否有一种简单/简单的方法可以使新的刀片填充这些"孔"?

保罗布埃诺

mysql auto-increment

17
推荐指数
3
解决办法
2万
查看次数

Azure表存储上的自动增量

我目前正在开发Azure表存储的应用程序.在该应用程序中,我有一个表,它将具有相对较少的插入(几千/天),并且这些实体的主键将在另一个表中使用,该表将具有数十亿行.

因此,我正在寻找一种方法来使用自动递增的整数而不是GUID作为小表中的主键(因为它将节省大量存储和插入的可伸缩性并不是真正的问题).

关于这个主题已经有过一些讨论,例如http://social.msdn.microsoft.com/Forums/en/windowsazure/thread/6b7d1ece-301b-44f1-85ab-eeb274349797.

但是,由于并发问题可能很难调试和发现,我对自己实现这一点感到有点不舒服.因此,我的问题是,是否有一个经过充分测试的阻止?

concurrency primary-key auto-increment identity-column azure-storage

17
推荐指数
3
解决办法
1万
查看次数

在带有非主键的列上使用带有MySQL的SqlAlchemy设置AUTO_INCREMENT?

我无法弄清楚如何使用带有MySQL 5的SqlAlchemy 0.6.0在UNIQUE列上设置AUTO_INCREMENT.

我知道这可以在MySQL中完成,但我不想分发额外的.sql脚本来为我的应用程序设置数据库.我希望SqlAlchemy从Python中构建模式.

到目前为止,我发现有两种方法可以使列成为SqlAlchemy中的自动递增类型列:

  1. 它是sqlalchemy.types.Integer表中第一列在其定义中设置primary_key=True和未autoincrement=False设置的列.
    • 使用MSSQL,这会INDEX(m,n)为列添加属性.
    • 使用Postgres会导致使用SERIAL列类型.
    • 使用MySQL将AUTO_INCREMENT属性添加到列.
  2. 它是一个sqlalchemy.types.Integer列,并以sqlalchemy.schema.Sequence对象作为参数进行实例化.
    • 使用MSSQL,这会INDEX(m,n)为列添加属性.
    • 使用Postgres会导致使用SERIAL列类型.
    • 使用MySQL这似乎被忽略了.

所以我不能使用#1,因为我想要auto_increment的列不在主键中(也不应该).我不能使用#2,因为它不适用于MySQL.

基本上,我定义表的代码如下所示:

from sqlalchemy import Column
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.schema import Sequence
from sqlalchemy.types import Integer, Unicode
Base = declarative_base()

class Person(Base):
    __tablename__ = "person"
    id = Column(Integer, nullable=False, unique=True)
    first_name = Column(Unicode(100), nullable=False, primary_key=True)
    last_name = Column(Unicode(100), nullable=False, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

并生成此SQL来创建表:

CREATE TABLE person ( …
Run Code Online (Sandbox Code Playgroud)

mysql sqlalchemy auto-increment

17
推荐指数
2
解决办法
8529
查看次数

重置SQLite3/MySQL中的行号计数

我正在使用SQLite3.我使用整数作为主ID加载一个表示30行的表,并自动递增.

现在我删除表中的所有行,然后将一些新信息重新加载到表中.

问题是:行计数(我的PrimaryID)现在以31开头.有没有办法可以从1号开始加载新行?

mysql sql sqlite auto-increment

17
推荐指数
4
解决办法
3万
查看次数

Mysql - 将auto_increment添加到主键

我有一个奇怪的问题与mysql.

我试图改变一个表的列,这是一个主键,并在其上定义了auto_increment约束.这也是多个其他表的外键引用.我需要在父级和所有子级中更改此列的长度.

set foreign_key_checks=0;
alter table Parent  modify Identifier smallint(10) unsigned;
alter table Child_1 modify FK_Identifier smallint(10) unsigned;
alter table Child_2 modify FK_Identifier smallint(10) unsigned;
alter table Child_3 modify FK_Identifier  smallint(10) unsigned;
alter table Child_4 modify FK_Identifier smallint(10) unsigned;
alter table Child_5 modify FK_Identifier smallint(10) unsigned;
set foreign_key_checks=1;
Run Code Online (Sandbox Code Playgroud)

这将删除父表上的自动增量.添加约束的最佳方法是什么?

以下似乎都失败了.

mysql> ALTER TABLE Parent MODIFY Identifier smallint(10) PRIMARY KEY AUTO_INCREMENT;
ERROR 1068 (42000): Multiple primary key defined


ALTER TABLE Parent MODIFY Identifier smallint(10) AUTO_INCREMENT;
------------------------
LATEST FOREIGN KEY ERROR
------------------------ …
Run Code Online (Sandbox Code Playgroud)

mysql database foreign-keys auto-increment

17
推荐指数
1
解决办法
5万
查看次数

ON DUPLICATE KEY UPDATE的自动增量太多

我有一个带有列的基本表:

  • id(主要用于AI)
  • 名称(唯一)
  • 等等

如果唯一列不存在,则INSERT该行,否则更新行....

INSERT INTO pages (name, etc)
VALUES
  'bob',
  'randomness'
ON DUPLICATE KEY UPDATE
 name = VALUES(name),
 etc = VALUES(etc)
Run Code Online (Sandbox Code Playgroud)

问题是如果它执行UPDATE,id列上的auto_increment值会上升.因此,如果执行了大量UPDATES,则id auto_increment会通过屋顶.

显然这是一个错误:http://bugs.mysql.com/bug.php?id = 28871

...但我在mySQL 5.5.8上使用InnoDB共享主机.

其他几年前没有解决问题的人: 防止MYSQL重复插入时的自动增量以及 为什么MySQL自动增量会因失败的插入而增加?

关于修复的想法?我是否可能以某种方式错误地构建了数据库?

******编辑****:似乎在你的my.ini文件中添加innodb_autoinc_lock_mode = 0修复了问题,但我对共享主机有什么选择?

******编辑2******:好的,我认为我唯一的选择是改为MyISAM作为存储引擎.作为一个超级mySQL新手,我希望这不会导致很多问题.是吗?

mysql auto-increment on-duplicate-key

17
推荐指数
1
解决办法
1万
查看次数

使用UUID时,我还应该使用AUTO_INCREMENT吗?

我们正在建设一个新的Web应用程序,将有一个数字,将涉及新的数据插入本地设备的离线的iPad/Android应用版本.因此,我们需要使用UUID来允许与master数据库进行必要的双向同步.为此,我们将UUID存储BINARY(16)为主键.

我在研究之后学到的问题是,非连续主键插入所需的时间会随着时间的推移而增加,并且这些插入会导致碎片化(如此处所述).好处AUTO_INCREMENT是新行通常只会添加到表的末尾,因此不会遇到UUID的速度问题.

我的问题是,使用AUTO_INCREMENT列作为主键,然后将UUID列作为非空唯一索引是否更好?据推测,这将具有顺序插入的速度优势,同时保留同步分布式数据库所需的必要UUID.

我可以看到的一个问题是UUID需要被用作对其他表的引用(使用外键约束)(即附加到检查的问题列表,而检查又连接到站点,所有这些都是参与插入,因此所有这些都需要UUID).在语义上,它使主键为参考更有意义,但由于其分布式系统,我们不能使用AUTO_INCREMENTS这些.对于这些引用(当然JOIN还有它们附带的s ),使用(非空)唯一索引而不是主键是否有缺点?

值得注意的是,主(在线)数据库使用MySQL(InnoDB),分布式(离线)数据库使用SQLite.

编辑:

考虑到将UUID作为主键(因为它在语义上是这样的)可能更好,如果我将UUID设置为主键并将AUTO_INCREMENT列设置为非null唯一索引,我是否会获得顺序插入的好处?或者它只是确定在哪里插入新行时相关的主键?

mysql sql sqlite uuid auto-increment

17
推荐指数
2
解决办法
6390
查看次数

在rails中生成自动增量字段

我有一个模型令牌,它有一个字段token_number,我需要自动递增(从1001开始),当且仅当用户不提供它.问题是,由于用户可以选择提供此字段,因此无法完全查询数据库并请求最大的token_number.我在这个论坛上找到了一个答案,但我确信必须有一个更好的方法来执行它而不是执行SQL语句?在Ruby on Rails中自动增加非主键字段

ruby-on-rails auto-increment rails-migrations

16
推荐指数
2
解决办法
2万
查看次数