如果在 SQL Server 中我们有一个自动增量的表,有 10 行,最后一行有id = 10. 当你删除最后一行时,你插入的下一行也会得到id = 10,对吧?
但在 Postgres 中,使用bigserialas PK 时,当我删除具有 max 的行id并插入新行时,它会不断增加 pk 数。
是对的吗?
为什么会$dbh->disconnect导致自增列出现间隙?
use DBI;
my $db = 'MYDB2';
my $table = 'SCHEMA.TABLE';
my $user = 'user';
my $pass = 'passwd';
my $dsn = "dbi:DB2:$db";
my $dbh = DBI->connect( $dsn, $user, $pass );
$dbh->do( "DROP TABLE IF EXISTS $table" );
$dbh->do( "CREATE TABLE $table (ID INT NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, NAME CHAR(3))" );
my $sth = $dbh->prepare( "INSERT INTO $table (NAME) VALUES(?)" );
$sth->execute( 'aaa' );
$sth->execute( 'bbb' );
$sth = $dbh->prepare( "SELECT * FROM $table" …Run Code Online (Sandbox Code Playgroud) unique_id | master_id | othercolumns
Run Code Online (Sandbox Code Playgroud)
如果unique_id是具有自动增量的列,是否有办法在插入新记录时将列master_id默认值设置为unique_id?
我正在尝试使用动态的自动递增列编写存储过程[SQL 2008],并且这个语法已经逃过了我.
如果我有一个名为widget的表,其中包含一个名为widget_nm的列,我的目标是
SELECT [???] AS widget_id, widget_nm FROM widget
Run Code Online (Sandbox Code Playgroud)
并得到以下结果
widget_id | widget_nm
1 | bob
2 | sally
3 | fred
Run Code Online (Sandbox Code Playgroud)
我记得曾经这样做过,但我的记忆让我失望......有什么建议吗?
节日快乐!
我有一个android形式的orderid字段..现在我想添加一个数字以及orderid的内容,这样每次数字应该是增量方式..
例如,如果用户输入123在orderid然后我想在数据库中存储123100类似于下次运行我想在数据库中存储123101 ..等等...我将如何做到这一点
请帮助
请我在php中构建一个表,列出数据库中的项目,列出的数量取决于可用的数量.我想用php连续编号我的s/n列.例如.
s/n Name amount
1 Mathew $12
2
3
4
etc
Run Code Online (Sandbox Code Playgroud) 如何在Symfony2/Doctrine2中自动生成主键?
我有我的所有实体和数据库.
在我的Symfony2控制器中,我做:
<?php
/**
* @Route("/myroute", name="myroute")
* @Template()
*/
public function myrouteAction()
{
/* Page de Création d'un retrait ou d'une réexpédition. */
$obj = new Utilisateur();
$obj->setUsermail('contact@mydomain.com');
$obj->setUserpass('coucou');
$obj->setUservalide('1');
$em = $this->getDoctrine()->getEntityManager();
$em->persist($obj);
$em->flush();
// [...]
}
Run Code Online (Sandbox Code Playgroud)
它用于测试.第一次全部正确(Utilisateur表空了).现在,当我再次调用此函数时,我得到:
SQLSTATE [23000]:完整性约束违规:1062密钥'PRIMARY'500内部服务器错误重复条目'0' - PDOException
我只想让Symfony-Doctrine-Mysql自动增加标识符.
在我的数据库应用程序中,我需要为每个客户提供一个唯一的4位数字段.直到9999我才能使用自动增量,但之后我将不得不重复使用已被删除的客户数量(在给定时间内不会超过5000个客户,但在生命周期内可能会有超过9999个客户)系统).
问题1:是否有(My)SQL语句来查找下一个可重用的空闲号码?
问题2:如果我得到号码,将其分配给新客户并将客户全部保存在一个交易中,同时发生的类似交易将由数据库按顺序排列,这样数字就不会发生冲突,对吧?
我以root身份运行命令:
set @@auto_increment_offset = 2;
Run Code Online (Sandbox Code Playgroud)
但是其他连接无法看到效果.为什么不?它是全球性的.
来自http://dev.mysql.com/doc/refman/5.1/en/replication-options-master.html :"如果设置了任一变量的全局值,其效果将持续存在,直到全局值被更改或覆盖为设置会话值,或直到mysqld重新启动."
这似乎与我所看到的不一致.
最后,我想知道是否有任何方法可以永久设置所有客户端的偏移量而无需重新启动mysqld?
在perl中,当满足各种特定条件时,字符串"aa"可以自动递增以变为"ab".PHP具有类似的行为,并且引用了Perl,我认为这意味着早期的使用是使用Perl.
为什么首先将魔术行为添加到Perl中?
这里有一个示例讨论:Perl中的递增(++)和递减( - )字符串,它指出perl文档没有给出基本原理.
这就是我的问题:创建字符串自动增量"魔术"行为背后的原始理由是什么?
2ND编辑:这与自动修复无关.在研究我的理由问题的可能答案时,我误解了我正在阅读的内容.谢谢ThisSuitIsBlack没有指出那个,而choroba问我的意思.
我完全同意这个功能很有用,每当我有合理的理由时,我都会使用它,主要是作为一个独特的非数字标签/键的生成器.我仍然想知道它是否有一个特定的理由或最初针对的用例.我们可能永远不知道!
auto-increment ×10
mysql ×4
perl ×2
sql ×2
android ×1
db2 ×1
dbi ×1
doctrine-orm ×1
insert ×1
key ×1
php ×1
postgresql ×1
sqlite ×1
symfony ×1
unique-key ×1