麻烦大神把下面一条MySQL语句 翻译成SqlServer语句

麻烦大神把下面一条MySQL语句 翻译成SqlServer语句,第1张

大概是这样,函数不知道有没有需要改的,逻辑应该是对的

(

(

send = 1 and(

ext6='0' or charindex(',1,',',' ext19)=0)

)

or

(send <>1 and charindex(',1,',',' ext19)=0)

)

数据类型不一致。

你的主表, id 的数据类型是int unsigned

你的子表, hoyyb_id数据类型是 int

因为:

INT[(M)] [UNSIGNED] [ZEROFILL]

普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

2种解决办法

1、 主表数据类型, 修改为 int

2、子表数据类型, 修改为 int unsigned

下面是一个模拟的例子:

-- 主表, id 是 INT unsigned

mysql>CREATE TABLE test_main2 (

-> id INT unsigned NOT NULL,

-> value VARCHAR(10),

-> PRIMARY KEY(id)

->)

Query OK, 0 rows affected (0.01 sec)

-- 子表, 数据类型 int 的时候。

mysql>CREATE TABLE test_sub2 (

-> id INT NOT NULL,

-> main_id INT ,

-> value VARCHAR(10),

-> PRIMARY KEY(id),

-> CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main2(id)

->)

ERROR 1005 (HY000): Can't create table 'test.test_sub2' (errno: 150)

-- 子表, 数据类型int unsigned 的时候

mysql>CREATE TABLE test_sub2 (

-> id INT NOT NULL,

-> main_id INT unsigned,

-> value VARCHAR(10),

-> PRIMARY KEY(id),

-> CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main2(id)

->)

Query OK, 0 rows affected (0.02 sec)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7412595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存