資料庫負數
① 怎樣防止資料庫中負數的出現
對資料庫做約束, 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資料庫命令編輯欄。