表的My DDL Schema看起来像这样......
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?
我真的很感激任何帮助
答案 0 :(得分:0)
在列上使用ZEROFILL
定义。
stockCurrentNumber smallint(3) unsigned zerofill
这会导致列中的所有插入都被填充0
。
示例强>:
当您插入1
时,它将存储为001
。您可以与field = 1
等实际值进行比较。
当使用相同的值与其他值连接时,填充的零不会丢失。
示例强>:
如果stockCode
为6
且stockCurrentNumber
为9
,则为
concat( stockCode, stockCurrentNumber )
将导致6009
。
答案 1 :(得分:0)
我不确定我是否理解你:
这是您使用复合主键创建表格的方法,请注意stockCurrentNumber
varchar不会丢失左0
CREATE TABLE StockCodes (
stockCode SMALLINT AUTO_INCREMENT,
stockName VARCHAR(100),
stockStart SMALLINT,
stockFinish SMALLINT,
stockCurrentNumber varchar(255),
PRIMARY KEY(stockCode, stockCurrentNumber)
);
然后删除:
DELETE FROM StockCodes WHERE stockCode='x' AND stockCurrentNumber='y';