2016-02-12 32 views
-1

晚上好。我的老師說,我們應該在一個表中使用這個語法我們每次輸入數據:如何不重複地在sql表中插入數據

drop database a15roban 
create database a15roban 
use a15roban 
Create table person ....() 

我有一個名爲Skees這裏我插一個人被分配到一個特定的Skee,如SkeeNr3等弱表,但每次我運行一個查詢,它會再次插入,所以當我運行查詢時,從Skee中選擇Skee.Name,其中SkeeNrID = 3我得到擁有它們一堆的人。任何解決方案

+2

請提供更多詳情。你究竟想要完成什麼?你多次運行什麼查詢? – GendoIkari

+4

那麼你肯定不想丟棄數據庫,並重新創建它,每次你毀了插入或更新查詢!請不要認爲這是可以接受的事情,或者您在第一次做實際工作時會被解僱。但是,如果沒有看到您使用的實際插入代碼,我們無法幫助您。 – HLGEM

+0

nuke和pave是根據上下文插入表格時的一種有效方法,但要刪除數據庫並在每次插入時重新創建似乎有點極端,您不覺得?你確定這就是你被告知要做的事嗎? –

回答

0

您應該注意關於刪除整個數據庫的問題。

我認爲什麼可以幫助你基於我的解釋你的問題是添加一個唯一的約束到SkeeNrID字段在你的表中。

不知道哪個DBMS您使用,我不能100%肯定有關語法,但它很可能是這樣的:

CREATE TABLE person (
SkeeNrID INT UNIQUE NOT NULL, 
-- [other fields] 
); 

甚至:

CREATE TABLE person (
SkeeNrID INT PRIMARY KEY, --cannot be null and must be unique 
-- [other fields] 
); 

當嘗試插入重複的SkeeNrID時,您應該會收到錯誤消息。這至少應該幫助你確定問題的核心在哪裏/爲什麼存在。