2013-10-26 2 views
-2

아래 쿼리를 사용하여 알 수없는 테이블에 새 레코드를 추가하면 새 레코드가 테이블의 첫 번째 레코드에 추가됩니다. 테이블의 마지막에 새 레코드를 추가하고 싶습니다.마지막 테이블에 레코드 추가

이 내 코드 :

begin 
insert into TBLCrowler (Url,Title,ParentId,HasData) values (@Url,@Title,@ParentId,@HasData) 
end 
+7

, 빈에서 첫 번째와 마지막 던져. –

답변

0

좋아, 한 번 더 위반에. 관계형 데이터베이스를 사용 중입니다. 그것은 워크 시트가 아니며, 단어 문서에서 직사각형의 셀 배열이 아닙니다. 가능한 한 가장 효율적인 방법으로 레코드를 저장하고 검색 할 수있는 능력에 의존합니다.

주문 문

당신은 그들이에 추가 된 시간 순서 일을하려는 경우가 주문을 통해 DBMS 무시 자유롭게 인덱스를 통해 암시 하나, 어쨌든 변경할 수있는, 또는 명시 적으로 요구 create_at 열을 추가하고 삽입을 수행 할 때 채 웁니다.

그런 다음 선택하면 Order By Created_At이 select 문에 추가됩니다.

"빨리"표시하려면 Created_At 열에 색인을 추가하십시오. 그러면 DBMS는 색인을 사용하여 풀 패스 정렬 비용을 피하려고 용감한 시도를합니다.

DBMS 작성 방법에 대해 잠시 생각해보십시오. 암묵적인 질서 정연한 비용은 얼마입니까? "마지막"테이블의 "마지막"레코드를 제외한 모든 변경 사항은 모든 테이블의 모든 레코드를 "후"디스크에 다시 쓰는 것을 의미합니다. 삽입이 더 나쁘다. Delete는 나쁘다. 다른 레코드가 다른 양의 공간을 차지한다는 것을 고려하지 않아도된다. 당신이 그들을 찾을 수 있다면

그래서 "첫 번째"또는 관계형 데이터베이스 테이블에서 "마지막"행 같은 건 없습니다 ...

+0

나는 길을 찾는다. 내가하는 일이 – mohammad

+0

나는 모든 귀가 짝을 지었다. 그러면 어떻게 할거 니? –

1
select top 1 CatId, Title, ParentId, Url, CrawlerCheck from TBLCrowler where CatId=(Select min(CatId) from TBLCrowler where CrawlerCheck=1) 
update TBLCrowler set CrawlerCheck=2 , HasData=2 
where CatId=(Select min(CatId) from TBLCrowler where CrawlerCheck=1) 
관련 문제