SQL DDL 地址必须包含

发布于 2025-01-15 08:54:15 字数 49 浏览 5 评论 0原文

如何为地址编写约束,使其包含街道地址和号码?无需处理包含公寓号码或楼层的地址。谢谢。

How do i write a contraint for an address so it contains both a street address and a number? No need to handle addresses that contain apartment number or floor level. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绝不放开 2025-01-22 08:54:15

哪里可以使用带有 RLIKECHECK 约束和正则表达式
这里我们只是简单的说,必须是一个数字后跟一个或多个单词,允许使用连字符和下划线。
注意 mySQL 仅在较新的版本中强制执行此操作。检查您的版本中的此试用脚本,看看它是否有效。如果不强制执行,唯一的解决方案是触发ON INSERT

创建表用户(
  名称 varchar(25),
  adresse varchar(25) 检查(地址类似 '[0-9]+ [- a-zA-Z]+')
  );
插入用户值('Boris', '唐宁街10号');
插入用户值('Poutin','The Kremlin');
检查约束“user_chk_1”是否被违反。

db<>fiddle 此处

Where can use a CHECK constraint with RLIKE and a regular expression.
Here we have simply said that there must be a number followed by one or more words with hyphens and underscores allowed.
NB mySQL only enforces this in more recent version. Check this trial script in your version to see whether it works. If it is not enforced the only solution is a trigger ON INSERT

create table user(
  name varchar(25),
  adresse varchar(25) check (adresse rlike '[0-9]+ [- a-zA-Z]+')
  );
insert into user values ('Boris', '10 Downing Street');
insert into user values ('Poutin','The Kremlin');
Check constraint 'user_chk_1' is violated.

db<>fiddle here

要走干脆点 2025-01-22 08:54:15

您可以在 CHECK 约束中使用正则表达式:

check(street_address RLIKE'^[0-9]*[[:space:]].*

或者任何对您的列有意义的内容

)

或者任何对您的列有意义的内容

You can use regex in a CHECK constraint:

check(street_address RLIKE'^[0-9]*[[:space:]].*

Or whatever makes sense for your column

)

Or whatever makes sense for your column

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文