- 论坛徽章:
- 0
|
根据2楼的回复写了以下两个运算符,但是会覆盖掉原有正常的运算符不知道怎样弄呢?
CREATE FUNCTION int_varchar_req(int4,varchar) RETURNS boolean
AS $$ SELECT $1::varchar=$2 $$
LANGUAGE SQL;
create operator = (procedure=int_varchar_req,LEFTARG='int4',RIGHTARG='varchar');
CREATE FUNCTION varchar_int_req(varchar,int4) RETURNS boolean
AS $$ SELECT $1=$2::VARCHAR $$
LANGUAGE SQL;
create operator = (procedure=varchar_int_req,LEFTARG='varchar',RIGHTARG='int4');
表结构 t_user (user_id{varchar},user_name{varchar})
insert into t_user values('123','test');
1、select * from t_user where user_id= 123
2、select * from t_user where 123=user_id
3、select * from t_user where user_id=‘132a’
4、select * from t_user where user_name=‘test’
1、2运行时OK的
3、4运行的时候就会报错:[Err] ERROR: invalid input syntax for integer: "test"
where user_name=‘test’
大神,您是怎样结局的呢? |
|