首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL -如何获得第二个唯一的字符串键?

MYSQL -如何获得第二个唯一的字符串键?
EN

Stack Overflow用户
提问于 2010-12-14 15:39:49
回答 4查看 1.3K关注 0票数 1

这是我的货桌。

代码语言:javascript
复制
+----------------------+---------------+------+-----+---------+-------+
| Field                | Type          | Null | Key | Default | Extra |
+----------------------+---------------+------+-----+---------+-------+
| ID                   | decimal(18,0) | NO   | PRI |         |       |
| gkey                 | varchar(255)  | YES  | MUL | NULL    |       |
| GOODS                | decimal(18,0) | YES  | MUL | NULL    |       |

列ID为自动递增。商品是商品类别的id。这是商品类别表。

代码语言:javascript
复制
+-------+---------------------+
| ID    | NAME                |
+-------+---------------------+
| 1     | book                |
| 2     | phone               |
+-------+---------------------+

我的问题是在goods表中,我需要gkey也是一个带有前缀- id的唯一键(这里的id从1开始)。就像书-1,书-2...电话-1,电话-2...将新的商品记录插入到商品表中时。就像这样:

代码语言:javascript
复制
+--------------------+---------------+------+-----+---------+-------+
| ID                 | GKEY          |GOODS | PRI | COUNTRY | Extra |
+--------------------+---------------+------+-----+---------+-------+
| 1                  | BOOK-1        | 1    | 10  |         |       |
| 2                  | PHONE-1       | 2    | 12  |         |       |
| 3                  | BOOK-2        | 1    | 13  |         |       |
| 4                  | BOOK-3        | 1    | 10  |         |       |
| 5                  | PHONE-2       | 2    | 10  |         |       |
| 6                  | PHONE-3       | 2    | 20  |         |       |
+--------------------+---------------+------+-----+---------+-------+ 

如何在PHP+MYSQL中获取GKEY?

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2010-12-14 15:45:39

可以使用UNIQUE约束。有关更多信息,请查看here

票数 0
EN

Stack Overflow用户

发布于 2010-12-14 15:46:21

我觉得你根本不想这么做。相反,good.gkey应该是goods_category.id的外键。如果插入顺序很重要,您可以将insert_date日期字段添加到goods表中。

在那里,您可以运行所有类型的查询,另外还有一个好处,就是在表上具有引用完整性。

票数 0
EN

Stack Overflow用户

发布于 2010-12-14 15:50:24

首先,你应该在数据库端做所有的事情。所以没有php。这就是我的建议。

然后在MySQL中没有序列,我会建议你:

代码语言:javascript
复制
SELECT COUNT(id)
FROM GOODS
WHERE GKEY LIKE('BOOK-%')

然后你插入

代码语言:javascript
复制
INSERT INTO goods (id, "BOOK-" || SELECT MAX(SUBSTR(LENGTH(GKEY -1), LENGTH(GKEY))FROM GOODS WHERE GKEY LIKE('BOOK-%') + 1, ...)

这样,您将始终拥有下一个可用的号码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4436895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档