我已经写了正则表达式^(?:([1-5])|([1-5]) .*|.* ([1-5])|.* ([1-5]) .*)$
以匹配独立数字1-5,或者由字符串的其余部分分隔至少一个空格的数字.我在在线服务中测试了它,结果是数字本身.但是,在使用代码时
preg_match('/^(?:([1-5])|([1-5]) .*|.* ([1-5])|.* ([1-5]) .*)$/', 'order 12314124 5', $matches);
Run Code Online (Sandbox Code Playgroud)
我明白了:
Array ( [0] => order 12314124 5 [1] => [2] => [3] => 5 )
Run Code Online (Sandbox Code Playgroud)
[0]元素是完全匹配,这很好.我预计[1]元素为5,但它是空的,还有另一个空元素.为什么会出现这些空元素?
在我的 PostgreSQL 9.4数据库中,我有一个包含唯一值fields
列的表name
。
我正在创建一个fields_new
具有类似结构(此处不重要)和一列的新表name
。我需要一种方法来约束name
要插入到fields_new
不存在于fields.name
.
例如,如果fields.name
包含值'color'和'length',我需要防止fields_new.name
包含'color'或'length'值。因此,换句话说,我需要提供name
两个表中的列之间没有任何重复值。约束应该是双向的。
sql postgresql database-design constraints unique-constraint