标签: auto-increment

SQL-如何在不自动递增ID列的情况下插入行?

我有一个具有强制自动增量列的表,此列是一个非常有价值的ID,可以在整个应用程序中保留.很抱歉,我认为这是一个自动增量列的开发很差.

所以,这是问题所在.我必须在此表中插入已经创建并从表中删除的列的ID.有点像复活这个ID并把它放回到表中.

那么如何以编程方式执行此操作而不关闭列增量.如果我错了,请纠正我,如果我以编程方式将其关闭,它将在0或1重新开始,我不希望发生这种情况......

sql sql-server auto-increment

29
推荐指数
3
解决办法
5万
查看次数

什么尺寸的INT我应该用于我的自动增量ids MySQL

目前我们正在对30多个表数据库中的所有自动增量id列使用INT(21)*.

我们是一个博客网站,并有表格存储成员,评论,博客文章等.

我很确定我们永远不会达到我们的INT(21)id列的限制,并且想知道:

  • 如果使用INT(21),我确信我们永远不需要它是浪费空间
  • 如果它是浪费,自动增量id列的建议大小是什么

*不是我的设计.我问这个是因为我正在考虑减少这个,说INT(10).

mysql primary-key auto-increment

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

如何在数据库主键的UUID,自动增量/序列键和序列表之间进行选择?

我正在研究提出数据库行主键的这三种主要方法的优缺点.

因此,假设我使用的数据库支持多种方法,是否有一个简单的启发式方法来确定最适合我的选项?

如何考虑这样的分布式/多主机,性能要求,ORM使用,安全性和测试?

一个人可能遇到的任何意想不到的缺点?

database uuid database-design sequence auto-increment

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

没有ORDER BY的SQL Server 2005 ROW_NUMBER()

我试图从一个表插入另一个表使用

DECLARE @IDOffset int;
SELECT @IDOffset = MAX(ISNULL(ID,0)) FROM TargetTable

INSERT INTO TargetTable(ID, FIELD)
SELECT [Increment] + @IDOffset ,FeildValue
FROM SourceTable
WHERE [somecondition]
Run Code Online (Sandbox Code Playgroud)

TargetTable.ID不是标识列,这就是为什么我必须找到一种自己增加它的方法.

我知道我可以使用游标,或者创建一个带有标识列和FieldValue字段的表变量,填充它,然后在我的中使用它insert into...select,但这不是很有效.我尝试使用ROW_NUMBER函数来递增,但我在SourceTable中确实没有合法的ORDER BY字段可以使用,并且希望保留SourceTable的原始顺序(如果可能).

谁能提出任何建议?

sql t-sql sql-server sql-server-2005 auto-increment

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

自动增量表列

使用Postgres,我试图AUTO_INCREMENT在SQL中自动编号我的主键.但是,它给了我一个错误.

CREATE TABLE Staff   (
  ID        INTEGER NOT NULL AUTO_INCREMENT,
  Name      VARCHAR(40) NOT NULL,
  PRIMARY KEY (ID)
);
Run Code Online (Sandbox Code Playgroud)

错误:

********** Error **********
ERROR: syntax error at or near "AUTO_INCREMENT"
SQL state: 42601
Character: 63
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

sql postgresql types auto-increment database-table

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

currval尚未定义此会话,如何获得多会话序列?

我的目标是在表中插入新行时自动插入主键字段.

如何在PostgreSQL中获得从一个会话到另一个会话的序列?

 doubleemploi@hanbei:/home/yves$ psql -d test
 Mot de passe : 
 psql (8.4.13)
 Saisissez « help » pour l''aide.

 test=> create sequence test001 start 10;
 CREATE SEQUENCE
 test=> select currval('test001');
 ERREUR:  la valeur courante (currval) de la séquence « test00 » n''est pas encore définie dans cette session
 --- current value not yet defined this session (???)
 test=> select setval('test001', 10);
 setval 
 --------
      10
 (1 ligne)

 test=> select currval('test00');
  currval 
 ---------
       10
 (1 ligne)

 test=> \q
 test@hanbei:/home/yves$ psql -d test
 Mot …
Run Code Online (Sandbox Code Playgroud)

postgresql database-design auto-increment postgresql-8.4

29
推荐指数
3
解决办法
5万
查看次数

使用泛型时,为什么这个静态变量不会递增?

我需要一个特定的类来包含一个静态成员,该成员每次实例化该类的一个实例时都会跟踪,实质上是这样每个类的实例都有一个唯一的索引.它适用于非泛型类,但只要类型T在实例之间不同,这种通用实现就会失败:

class A<T>
{
   private static int counter;

   private static int Counter {
       get { 
          Increment(); 
          return counter; 
       }
   }

   private static void Increment() {
       counter++; 
   }

   public int Index; 

   public A()
   {
       this.Index = Counter; // using A<T>.Counter makes no difference

       Console.WriteLine(this.Index);      
   }
}


class Program
{
    static void Main(string[] args)
    {
        var a = new A<string>();
        var b = new A<string>(); 
        var c = new A<string>();
        var d = new A<int>(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

1

2

3

1 …

.net c# generics static auto-increment

28
推荐指数
5
解决办法
3365
查看次数

我需要在MySQL中auto_increment一个不是主键的字段

现在,我有一个表,其主键是一个auto_increment字段.但是,我需要将主键设置为username,date(以确保不能存在具有日期的重复用户名).

auto_increment但是,我需要该字段才能更改行信息(添加和删除).

通常在这种情况下做什么?

谢谢!

mysql primary-key auto-increment

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

MySQL:#1075 - 表定义不正确; 自动增量与另一个关键?

这是MySQL 5.3.X + db中的一个表:

CREATE TABLE members` (
  `id` int(11)  UNSIGNED NOT NULL AUTO_INCREMENT,
  `memberid` VARCHAR( 30 ) NOT NULL ,
  `Time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  `firstname` VARCHAR( 50 ) NULL ,
  `lastname` VARCHAR( 50 ) NULL ,
  UNIQUE (memberid),
  PRIMARY KEY (id) 
) ENGINE = MYISAM;
Run Code Online (Sandbox Code Playgroud)

Id列从不在查询中使用,它只是为了方便视觉(因此很容易看到表的增长方式).Memberid是一个实际的键,是唯一的,并且在查询中使用memberid来标识任何成员(WHERE memberid ='abcde').

我的问题是:如何保持auto_increment,但将memberid作为主键?那可能吗?当我尝试使用PRIMARY KEY(memberid)创建此表时,出现错误:

1075 - 表定义不正确; 只能有一个自动列,必须将其定义为键

什么是最佳选择(希望有一种方法可以保持id列,以便性能良好,查询通过memberid识别任何用户,而不是id),如果性能非常重要(尽管磁盘空间不是)?

mysql primary-key auto-increment mysql-error-1075

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

在CouchDB中生成自动递增数字ID的方法

由于CouchDB不支持SQL类似的AUTO_INCREMENT,您的方法是为文档生成顺序唯一数字ID?

编辑:

我需要数字ID有几个原因:

  • 用户友好的ID(例如TASK-123,RQ-001等)
  • 与需要数字主键的库/系统集成

我知道复制等问题.这就是为什么我对人们如何克服这个问题感兴趣.

couchdb auto-increment

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