草庐IT

auto-versioning

全部标签

php - (mysql, php) 如何在插入数据前获取 auto_increment 字段值?

我正在将图像文件上传到存储服务器。在上传之前,我应该编写文件名,其中包含AUTOINCREMENTVALUE(例如,12345_filename.jpg)。如何在插入数据库之前获取自动增量值?我只看到一个解决方案插入空行获取它的自增值删除这一行使用p.1中的自动增量值插入包含真实数据的行还有其他解决办法吗?谢谢 最佳答案 自动增量值由数据库本身生成,当插入完成时;这意味着您无法在执行实际插入查询之前获取它。您提出的解决方案不是经常使用的解决方案——应该是:插入一些半空数据获取已生成的自动增量值使用该自动增量值进行计算更新行以放置新的

mysql - 如何: database versioning with maven2?

我正在寻找任何用于版本控制数据库更改的Maven插件。 最佳答案 有一些插件为此任务提供了一些支持:MavenLiquiBasePluginMavenDatabaseMigrationPluginDbMaintainMavenPlugin(DbMaintain的插件,来自Unitils的著名工具)我对它们没有太多经验,我们目前使用自定义工具来应用我们的更改脚本。但是MavenDatabaseMigrationPlugin是取代它的重要候选人。LiquiBase非常有名,但也不同,更改以通用XML格式描述。关于DbMaintain,它

mysql - AUTO_INCREMENT 和 LAST_INSERT_ID

我正在使用AUTO_INCREMENT,我想获取插入行的ID,以便我可以使用ID作为两个表之间的公共(public)字段来更新另一个表。我知道LAST_INSERT_ID将获得最后一个ID。但是,我担心的是,许多用户同时访问数据库。因此,可能有另一个进程访问了该表并同时插入了一个新行。LAST_INSERT_ID是只返回最后一个ID而不管使用的连接,还是只返回我正在使用的连接的最后一个ID?注意,我正在使用Tomcat服务器中的连接池访问MySQL数据库。总而言之,我需要在表A中插入一行并自动递增,而我需要在表B中插入一行,这需要使用AUTO_INCREMENT值链接到表A。

mysql - mysql auto increment 可以安全地用作 userID 吗?

我正在开发允许人们在线创建个人资料的网站。我想知道使用MySQLAUTO_INCREMENTedID作为我的用户ID是否是正确的选择。还要记住,有一天我可能不得不在多台服务器上复制数据库?例如您会在Twitter或Facebook等网站上对userId使用这种方法吗?我之前尝试过使用PHP生成userId。我使用了这样的东西:functiongenerateID(){$possible="1234567890";$code="";$characters=mt_rand(7,14);$i=0;while($i这给出了我需要的值类型,但如果该ID尚不存在,我总是必须从数据库中检查。有没有更

php - Laravel 表 : there can be only one auto column and it must be defined as a key

我已将所有整数设为无符号,但仍然出现错误。我需要改变什么?increments('id');$table->integer('user_id')->unsigned();$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');$table->timestamps();$table->string('username',255);$table->bigInteger('uid',20)->unsigned();$table->string('ac

php - 向具有 auto_increment 列的表中插入一行

我正在处理一个有4列的表,第一列是一个名为id的自动递增整数。如果我要使用mysqli准备好的语句插入到这个表中,我在插入有效的查询时会遇到问题。使用phpMyAdmin它告诉我给它NULL。我试过这个:$query="INSERTINTOtbl(id,col2,col3,col4)VALUES('NULL',?,?,?)";$stmt->bind_param("ssi",$col2,$col3,$col4)还有这个$query="INSERTINTOtbl(id,col2,col3,col4)VALUES(NULL,?,?,?)";$stmt->bind_param("ssi",$c

php - 错误 1148 MySQL The used command is not allowed with this MySQL version

我正在使用MySQLLOADDATALOCALINFILE命令,我收到此错误:PDOException:SQLSTATE[42000]:Syntaxerrororaccessviolation:1148TheusedcommandisnotallowedwiththisMySQLversion:LOADDATALOCALINFILE'/tmp/phpI0ox54'INTOTABLE`dev_tmp`FIELDSTERMINATEDBY','ENCLOSEDBY'"'LINESTERMINATEDBY'\r\n'IGNORE1LINES;Array()indc_real_estate_f

php - 替代 MySQL 的 UUID Version 1 函数?

上下文Web应用程序,PHP5,MySQL5.0.91问题我最近从使用自动递增的整数切换到使用UUID作为我的一些表的主键。通过MySQL的UUID()生成UUID时功能,它们彼此极其相似:|uuid|----------------------------------------|1e5988da-afec-11e1-9877-5464f7aa6d24||408092aa-afad-11e1-9877-5464f7aa6d24|^------^^^1811-12如您所见,只有前8个字符和第11、12个不同。我知道UUID版本1使用时间戳和硬件MAC地址来生成UUID。然而,由于这些相

mysql - Laravel 5.5 与 MySQL 8.0.11 : 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

我刚刚安装了MySQL8.0.11,将我的应用程序的数据库转移到其中,并更改了laravel数据库设置以使用新的。现在每次我尝试登录时都会收到以下错误:ERROR1231(42000):Variable'sql_mode'can'tbesettothevalueof'NO_AUTO_CREATE_USER'我尝试手动设置NO_AUTO_CREATE_USER:setglobalsql_mode="...,NO_AUTO_CREATE_USER,...";但我得到了同样的错误。我该如何解决问题并使用MySQL8.0.11运行laravel5.5? 最佳答案

mysql - 错误 1064 (42000) : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use

当我尝试向表中插入一行时,我收到以下错误:ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''filename')VALUES('san','ss',1,1,1,1,2,1,1,'sment','notes','sant'atline1请帮帮我。mysql>descrisks;+-----------------+--------------+------+-----+--------