Python 是否可以在递增字段前面添加字母或其他字符?

Python 是否可以在递增字段前面添加字母或其他字符?,python,mysql,django,django-models,Python,Mysql,Django,Django Models,我想做的是使用我的主键字段或另一个字段,只要它接受前面有字母的自动递增。例如: 我希望能够使pk在一个表中等于A1、A2、A3,如果我选择,在另一个表中等于B1、B2、B3。对于django,这可能吗?mysql?只要字段自动递增,它就不必是主键字段。请让我知道。MySQL中没有任何东西可以自动为您执行此操作。不过你有几个选择 选项1更好的选项: 使用两个单独的字段,然后在提取信息时将它们合并: CREATE TABLE MyTable ( id int unsigned not null

我想做的是使用我的主键字段或另一个字段,只要它接受前面有字母的自动递增。例如:


我希望能够使pk在一个表中等于A1、A2、A3,如果我选择,在另一个表中等于B1、B2、B3。对于django,这可能吗?mysql?只要字段自动递增,它就不必是主键字段。请让我知道。

MySQL中没有任何东西可以自动为您执行此操作。不过你有几个选择

选项1更好的选项:

使用两个单独的字段,然后在提取信息时将它们合并:

CREATE TABLE MyTable (
  id int unsigned not null auto_increment,
  id_adder char(1) not null
)
然后,将以下命令与所有其他字段一起使用,以获得所需的结果:

SELECT CONCAT(id_adder, CAST(id AS CHAR)) AS FullPK FROM MyTable
备选案文2:

您可以根据输入的上一个值获取下一个值的内容:

CREATE TABLE MyTable (
  id varchar(15),
  OtherField varchar(30),
  UNIQUE (id)
)
插入的内容可能类似于以下内容:

INSERT INTO MyTable (id, OtherField)
SELECT CONCAT('A', CAST(CAST(RIGHT(id, LENGTH(id) - 1) AS UNSIGNED) + 1 AS CHAR)),
       'Other Field Value'
FROM MyTable
ORDER BY id DESC
LIMIT 1

仅使用自动递增字段是不可能的。您可以在每个表中设置另一列,用一个字母标识该表,设置一个自动递增列,然后使键成为这两个列的组合。您还可以使用触发器进行设置

然而,这并不完全有意义,因为在一个表中确实不需要这个字母

我怀疑您正在试图解决一个不同的问题,即在不同的表中有多种类型的实体,例如联系人表,一个用于电子邮件,一个用于邮件,一个用于电话联系。如果是这样的话,另一种方法是使用一个具有自动递增id的所有内容的主表,然后在子表中使用该id,并用1-1关系定义