数据库负数
① 怎样防止数据库中负数的出现
对数据库做约束, check
WITH CHECK | WITH NOCHECK
指定表中的数据是否用新添加的或重新启用的 FOREIGN KEY 或 CHECK 约束进行验证。如果没有指定,对于新约束,假定为 WITH CHECK,对于重新启用的约束,假定为 WITH NOCHECK。
WITH CHECK 和 WITH NOCHECK 子句不能用于 PRIMARY KEY 和 UNIQUE 约束。
如果不想用新 CHECK 或 FOREIGN KEY 约束对现有数据进行验证,请用 WITH NOCHECK,除了个别情况,不建议这样使用。新约束将在以后的所有更新中生效。任何在添加约束时由 WITH NOCHECK 抑制的约束违规都可能导致将来的更新失败,如果这些更新操作要更新的行中包含不符合约束条件的数据。
查询优化器不考虑用 WITH NOCHECK 定义的约束。将忽略这些约束,直到使用 ALTER TABLE table CHECK CONSTRAINT ALL语句重新启用这些约束为止。
或者在程序中作检查
② sql数据库中哪个类型可以存储负数 如果不能存储,用什么方法才能存储
数据库中一般的数字类型都可以存储负数,如int,numeric,decimal等。
工具:sqlserver 2008 R2
步骤:
1、以int类型为例,首先创建一个表:
③ MySQL中重新导入的数据库为什么出现负数
你有复制DATADIR下面的所有文件吗?
你可以用文本编辑器打开这个SQL文件,看看里面都是些什么?
有可能你导出的只是一些表结构。
④ mysql保存int(11)类型数据出现负数
把nid字段类型设置成为unsigned int就好了。
⑤ SQL数据库中如何将表中某一列部分负数改为正数
这些数据为什么会出现负数 ,你应该解决程序问题而不会对数据进行处理
具体的SQL 如下
UPDATE SPKCB SET SL = -1*SL WHERE SL < 0
⑥ SQL正数变负数
1、首先打电脑,进入SQL数据库命令编辑栏。
⑦ 数据库插入正数时转为负数
两种方法,一种就是你说的
先拿出数据库的date字段与新数据的进行匹配然后选择是覆盖还是插入
用java代码实现
另一种
在数据库这边操作,写个存储过程,在过程中判断date
然后看是插入还是更新
两种方法各有优劣。第一种
当然增加了
代码
第二种
增加数据库的负担
建议写到代码里
⑧ SQL数据库创建字段如何让数字不为负数
这个问题用触发器解决比较好,用check 只能设定字段不为负数,但是要变为0就难了。
用check的话如下:
alter table 表名
add constraint 约束名 check (字段>0)
用触发器的话
create trigger a_num
on 表名 instead of insert
as
begin
declare @列1 数据类型1,@列2 数据类型2,列3 数据类型3...
select @列1 = 列1,@列2=列2,@列3 = 列3... from inserted
if @列1<0
set @列1 = 0
else set @列1 =@列1
insert into 表名(列1,列2,列3...) values (@列1,@列2,@列3...)
end
这里我假设你列是要大于等于0,小于0的时候自动变为0的
⑨ sql变为负数的函数
1、首先打电脑,进入SQL数据库命令编辑栏。