我的表的DDL模式看起来像这样...

CREATE TABLE StockCodes (
    stockCode SMALLINT AUTO_INCREMENT,
    stockName VARCHAR(100),
    stockStart SMALLINT,
    stockFinish SMALLINT,
    stockCurrentNumber SMALLINT
);


如何实现stockCurrentNumber,这样我就可以获得记录列表,例如... stockCurrentNumber 001、002、003、004、005。

另外,如何捆绑stockCode和stockCurrentNumber以形成复合主键。

另外,删除库存时如何删除单个stockCurrentNumber?

我真的很感谢您的帮助

最佳答案

在列上使用ZEROFILL进行定义。

stockCurrentNumber smallint(3) unsigned zerofill


这将导致所有在列中的插入都以0开头填充。

例:
插入1时,它将存储为001。您可以与实际值进行比较,例如field = 1

当使用相同的值与其他值连接时,填充的零不会丢失。

例:
如果stockCode6并且stockCurrentNumber9,则

concat( stockCode, stockCurrentNumber )


将得到6009

参考:
MySQL: SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

10-04 12:37