2016-09-16 57 views
0

对于练习,我需要为遵守此约束条件的表编写代码:
字段ID必须完全为10个字符,始终以'ID_'开始并以'000'结尾。
我想是这样的:如何施加固定长度的字段

create table xyz (id char(10) primary key, check (id like 'ID\_%000')) 

但正如我所见过的ID可以少于10个字符。 有没有一种方法可以对领域施加精确的长度?或者,也许,我需要使用触发器之类的东西?在那种情况下,如何? 谢谢。

+0

10个字符的不同?当你创建一个char类型的字段(而不是varchar)时,如果你放3个字符串,MySql用初始空格填充以达到定义的维数 –

+0

mysql是否支持检查约束? – TheGameiswar

+0

是的,我知道。 我认为练习会问这样的问题:如果我尝试插入ID_abc000(少于10个字符)或ID_abcdefctfga000(超过10个字符)的ID,则不允许。 – JamieITGirl

回答

1

您可以使用4个下划线,如“喜欢”通配符(这就是为什么你必须反斜线第一个下划线)的空间

create table xyz (id char(10) primary key, check (id like 'ID\_____000')) 
+0

是的,它可以是一个解决方案。但是如果我必须通过触发器或程序或类似的东西来做同样的事情呢?谢谢。 – JamieITGirl

+0

google'mysql trigger before insert validate input':http://cvuorinen.net/2013/05/validating-data-with-triggers-in-mysql/ – verhie