标签: auto-increment

如何将主键设为AUTOINCREMENT

我在数据库中有表,而初始键是'ID',我想问一下如何才能使它成为AUTOINCREMENT

我知道那是esay Q,但我不知道我该怎么做.

谢谢

database sql-server sql-server-2005 auto-increment

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

使用auto_increment生成PHP短唯一ID?

我想生成一个简短的唯一ID,而不必检查冲突.

我目前做这样的事情,但我目前生成的ID是随机的,并且在循环中检查冲突是令人讨厌的,并且如果记录数量显着增加将会变得昂贵.

通常担心碰撞不是问题,但我想要生成的唯一ID是一个短的唯一字符串5-8个字符,字母数字,就像tinyurl一样.

编辑:我想从5个字符开始,如果我达到6000万条目,那么去6 ...等等.

为此,我想我可以使用对用户隐藏的auto_increment值,而是用一个MD5或其他方法来呈现它们以从中生成唯一的字符串.

生成的字符串看起来不应该是线性的,所以简单地将auto_incremented ID转换为base 36[0-9A-Z]有点过于简单了,但是这样的函数就是我要用的东西.

编辑:安全性不是问题,因为这不会用于保护信息.它只是更长字符串的快捷方式.谢谢.

感谢您的建议,抱歉延误.牙医..

php mysql unique auto-increment

7
推荐指数
1
解决办法
4826
查看次数

如何查看表的auto_increment值

我知道的唯一方法是 show create table MyTable

mysql auto-increment

7
推荐指数
2
解决办法
4321
查看次数

MySQL,C++ - 以编程方式,MySQL自动增量如何工作?

从MySQL的最新源代码(不确定它是C或C++),它如何进行自动增量?我的意思是,它是否有效,因为它像元数据资源一样存储在它最后停止的表上,或者它是否必须进行表扫描才能找到表中使用的最大ID?另外,当你看看它是如何实现的时候,你会看到使用自动增量的任何负面影响,比如PostgreSQL吗?

c c++ mysql architecture auto-increment

7
推荐指数
1
解决办法
499
查看次数

DBCC CHECKIDENT RESEED - 需要新值吗?

我读到的有关重新种植的所有文件都表明了以下内容:

  1. SET @maxIdentityValue = (SELECT MAX(id) FROM tablename)
  2. DBCC CHECKIDENT('tablename', RESEED, @maxIdentityValue)

尚未在我看来,一个简单的DBCC CHECKIDENT('tablename', RESEED)是所有的需要,它会自动确定从表中的正确标识值,而无需提供一个最大值.

是否有理由(性能或其他方面)MAX首先使用首先提取值?

背驮式问题:我需要重新设置的原因是因为我每次数据库复制运行时都使用复制和身份设置为Null.我究竟做错了什么?如何为每个表维护正确的标识种子?

更新(当前解决方案)

现在我没有使用最大值.这是我正在使用的存储过程(我使用查询生成它sys.columns然后只是将每个切割并粘贴到一个新的查询窗口.Messier,更慢,更不优雅,但我不是很熟悉存储过程而且'不'我想使用动态SQL查询):

declare @seedval integer
declare @maxval integer
declare @newval integer
set @seedval = (select ident_current('mytable'));
set @maxval = (select MAX(id) from mytable);
if @maxval > @seedval or @seedval is NULL
BEGIN
    print 'Need to reseed: max is '  + cast(@maxval as varchar) + ' and seed is ' + cast(@seedval as varchar) 
    dbcc …
Run Code Online (Sandbox Code Playgroud)

sql-server auto-increment sql-server-2008

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

在doctrine2中,是否可以使用不是主键的自动增量列?

在doctrine2中,我有一个实体,它具有从Web服务中获取的主键,并且还有一个应该是自动增量的索引.

我可以在mysql中手动设置,但不能在doctrine2中使这个工作.

zend-framework primary-key auto-increment symfony doctrine-orm

7
推荐指数
2
解决办法
7783
查看次数

改变MySQL中TRIGGER中的LAST_INSERT_ID()

我有一个BEFORE INSERT TRIGGER用于计算AUTO_INCREMENT列(id_2)的值.

id_1 | id_2 | data
1    | 1    | 'a'
1    | 2    | 'b'
1    | 3    | 'c'
2    | 1    | 'a'
2    | 2    | 'b'
2    | 3    | 'c'
2    | 4    | 'a'
3    | 1    | 'b'
3    | 2    | 'c'
Run Code Online (Sandbox Code Playgroud)

我有PRIMARY(id_1,id_2),我正在使用InnoDB.以前,该表使用的是MyISAM,我没有遇到任何问题:id_2设置为AUTO_INCREMENT,所以每个新条目id_1都会id_2自行生成新的.现在,在切换到InnoDB后,我有这个触发器做同样的事情:

SET @id = NULL;
SELECT COALESCE(MAX(id_2) + 1, 1) INTO @id FROM …
Run Code Online (Sandbox Code Playgroud)

mysql triggers innodb auto-increment last-insert-id

7
推荐指数
1
解决办法
1188
查看次数

查询IS NULL时,MySQL返回最后插入的内容

每当我在a 之后直接做一个SELECT语句时,我得到最后一个插入的行.WHERE id is NULLINSERT

我正在使用MySQL 5.1.73.

它直接发生在MySQL shell中; 这是我的控制台:

mysql> CREATE TABLE testing (
    ->     id int(11) NOT NULL AUTO_INCREMENT,
    ->     name VARCHAR(200),
    ->     PRIMARY KEY (id)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO testing (name) VALUES ('test');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM testing WHERE id IS NULL;
+----+------+
| id | name |
+----+------+
|  1 | test |
+----+------+ …
Run Code Online (Sandbox Code Playgroud)

mysql null select insert auto-increment

7
推荐指数
1
解决办法
193
查看次数

从postgresql字段中删除自动增量

我有一个db中的现有表,其他几个FK,SQL如下:

CREATE TABLE forecastsource (
    source_id integer DEFAULT nextval(('public.forecastsource_source_id_seq'::text)::regclass) NOT NULL,
    source_name character varying NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

我想从id字段中删除自动增量,然后将其移动到一个int字段(不丢失表中的当前数据).除了删除和重新创建表之外,我该怎么做?

sql postgresql auto-increment

7
推荐指数
1
解决办法
4579
查看次数

如何根据mysql中的组添加自动增量id

这是表的格式:

indexer group name id
1       abc   a
2       abc   b
3       xyz   c
4       abc   e
5       xyz   d
Run Code Online (Sandbox Code Playgroud)

现在我希望它像,

indexer group name id
1       abc   a    1
2       abc   b    2
3       xyz   c    1
4       abc   e    3
5       xyz   d    2
Run Code Online (Sandbox Code Playgroud)

"id"应根据"group"自动递增

mysql auto-increment

7
推荐指数
1
解决办法
4247
查看次数