【问题标题】:DQL How to make item_ID have a letter at the start?DQL如何让item_ID以字母开头?
【发布时间】:2017-08-17 19:35:32
【问题描述】:

我正在尝试弄清楚如何在每次创建新产品时让商品代码/产品代码在开头固定一个字母。

例如,如果产品代码是 A1234,则此人不能更改字母 A,但他们可以更改最后 4 个数字。

PRODUCT_CODE 必须有 5 个字符(第一个为 A,其余为数字)

如何在 Product_code 列上创建一个约束,使其必须以 A 开头并以四个数字结尾(如果不是这种格式,是否可以使用 where 子句来实现?谢谢

【问题讨论】:

  • 您只是希望这是对列的约束,还是希望这是一个 auto_incrementing 字段?
  • 听起来像 Check 约束,包括。正则表达式?也许this link 能帮上忙?
  • 只是一个约束

标签: sql oracle


【解决方案1】:

此约束将强制执行您的示例:

create table t1 (product_code varchar2(5));

alter table t1 add constraint product_code_fmt
   check (regexp_like(product_code,'A[[:digit:]]{4}'));

【讨论】:

  • 您好,谢谢您,我想您不知道它是否可能或更好,但如何通过 WHERE 条件进行操作?
  • 您不能使用 where 子句强制约束。如果您不喜欢检查约束,可以使用表触发器。
猜你喜欢
  • 2014-11-03
  • 1970-01-01
  • 2015-09-24
  • 2016-01-05
  • 2021-12-31
  • 2023-02-21
  • 2015-07-14
  • 1970-01-01
  • 2021-02-26
相关资源
最近更新 更多