PHP SQL:使用注册中的前缀自动生成ID /自动递增

时间:2019-07-15 06:55:03

标签: php sql mariadb

我已经编码了一个注册系统,在该系统上我想要一个带有前缀的ID。已经在此上调试了几个小时,并决定在此处创建一个帖子。试图寻找有关此问题的线程,但它们主要用于SQL SERVER。

正在查看@Mikael Eriksson查询,并使其转为我的工作,但我失败了。

我的例子:

CREATE TABLE 2njaho1fluahymj1auusz5ormx5zmraqqpdrmsut0eotpjzk2(
 wuZ7gIfEz9UAZydySMnE5e1h28Nqvd4Kmk46Ovko1CiDvsf0iDRDC INT IDENTITY(10000,1),
 5nJDfmCpaYwEvIbzShL35uhnbcI4kKmUicxCDaHHRQlc49VUoPh4a AS '#QWE-'+right('00000'+cast(wuZ7gIfEz9UAZydySMnE5e1h28Nqvd4Kmk46Ovko1CiDvsf0iDRDC AS VARCHAR(5)), 5) PERSISTED,
 G5cWsbp6ob2DKgZVwZnzguSpdZacwXXfHvl7Bo4rLB5BT4uI5lNAK VARCHAR(300),
 T8x4q5RfqVyK5Eoae9UmVEIMF7FwzK00e0vzpYHB5NMr6mDO VARCHAR(300),
 0SUdlsy5q0b9rwD2ePJHLuCeWn8q8vyFquB0hf0f3v0VC43m VARCHAR(300),
 Guwox6dyV7faJZlWxCyKIeStrO9t7xDbKIIXMGx6bb3QucYAI8mMC VARCHAR(300),
 X3nIkFzS6KyaksZz9iBCyOUKaq96lK15bTIuDsou8e3cfI49VVsTS VARCHAR(300),
 82HQunAIr3kEEeCn3JypweDhRMDxAljIMufT3NZB5W4aB3Ns2qSPi VARCHAR(300),
 3HTMIH1dzv6roy4SXmUozupWzOGrzCKwQ7K3qZIFeyNQahIkIGRIe VARCHAR(300),
 FP6U0wzvs06kXt6gQb7SXeathDXZUCAayQbBaMbSItdn9py6JO61i VARCHAR(300),
 L4u7NxC0t8Gvv2BzWbcR3eFmDTVgCmrZfquzgd2YvBRUAa2RCFv6y VARCHAR(300),
 Lx4WTEWUPCtwi6f5TMtxhuyIEfYcOxIziGjBM2c5IdEmM0jrehYcW VARCHAR(300),
 lQg6bMRmFbwx5yP7gRgmhONOvqTOXMLy08PLeBSdBGug8Ujz6HX6u VARCHAR(300),
 PRIMARY KEY(5nJDfmCpaYwEvIbzShL35uhnbcI4kKmUicxCDaHHRQlc49VUoPh4a)
);

我得到的实际错误:

  

您的SQL语法有错误;检查手册   对应于您的MariaDB服务器版本,以使用正确的语法   在'AS附近   '#JWT-'+ right('00000'+ cast(wuZ7gIfEz9UAZydySMnE5e1h28Nqvd4Kmk46Ovko1CiDvsf0iD'   在第3行

我猜这是因为它与我正在使用的RDBMS不兼容。

1 个答案:

答案 0 :(得分:0)

MariaDB 10.2中引入了“已生成”列

另请参阅ZEROFILL

id INT(6) ZEROFILL

将为您提供以零开头显示的6位数字。不需要RIGHT

无论如何,CONCAT( , )都用于级联,而不是+