php - PHP SQL:在注册中使用前缀自动生成 ID/自动增量
问题描述
我编写了一个注册系统,我想在其中拥有一个带有前缀的 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 服务器版本相对应的手册,以在第 3 行的 'AS '#JWT-'+right('00000'+cast(wuZ7gIfEz9UAZydySMnE5e1h28Nqvd4Kmk46Ovko1CiDvsf0iD' 附近使用正确的语法
我猜这是因为它与我正在使用的 RDBMS 不兼容。
解决方案
MariaDB 10.2中引入了“生成”列
另请阅读ZEROFILL
:
id INT(6) ZEROFILL
将为您提供以前导零显示的 6 位数字。不需要RIGHT
等。
无论如何CONCAT( , )
用于连接,而不是+
.
推荐阅读
- javascript - 无论如何,IE11 是否支持 BigInt?
- bash - foreach 循环中的期望异常处理问题
- c# - 如何从系列列表中选择项目直到中断
- r - 如何创建包含 local_mock() 的函数?
- angular - “formDirective”被定义为“ControlContainer”类中的访问器,但在“ConnectArrayDirective”中作为实例属性被覆盖
- excel - 删除值 < 500 和舍入值 > 500 VB.net 的行?
- oracle - 如何将 CLOB 类型的参数传递给具有 100k+ 长度字符串的 Oracle 存储过程?
- python - 我们什么时候应该在我们的正则表达式中使用组?这里真正的优势是什么?
- winforms - C# Panel AutoScroll down using chromium
- swiftui - 如何获取在 TabView 中选择了哪个视图的值?