2012-07-15 4 views
0

타임 스탬프 형식의 "만든"하나의 "수정 된"두 개의 열이있는 테이블을 만들고 싶습니다. 나는 그들에게 디폴트 값을주기를 원하지 않는다. 그러나 내가 생성 할 때 자동으로 CURRENT_TIMESTAMP를 적어도 하나 이상에 대한 기본값으로 그리고 업데이트시에 기본값으로 설정합니다.SQL - 기본값이없는 두 개의 타임 스탬프 열이있는 테이블 만들기

내 열의 기본값이나 업데이트 값으로 timestamp를 입력하는 방법은 무엇입니까?

편집 : 당신의 timestamp 유형이 행 버전에 사용되는 SQL Server를 사용하는 경우, 내가 MySQL을

+1

'CREATE TABLE (TIMESTAMP val1, TIMESTAMP val2 ...);'의 문제점은 무엇입니까? –

+2

어떤 RDBMS를 사용하고 있습니까? –

답변

0

사용하지 실제 날짜 또는 시간 값을 저장합니다. See MSDN.

datetime 데이터 형식으로 열을 만든 다음 createdmodified 값을 트리거로 설정할 수 있습니다.

CREATE TRIGGER trg_SetDateCreated ON MyTable 
FOR INSERT AS 
    UPDATE MyTable 
    SET created = CURRENT_TIMESTAMP 
    WHERE MyTable.id = (SELECT Id FROM Inserted); 
GO 

CREATE TRIGGER trg_SetDateModified ON MyTable 
FOR UPDATE AS 
    UPDATE MyTable 
    SET modified = CURRENT_TIMESTAMP 
    WHERE MyTable.id = (SELECT Id FROM Inserted); 
GO 
+0

My SQL을 사용합니다. 나는 SQL을위한 datetime이나 트리거 솔루션을 사용해야한다는 것을 몰랐다. 감사! – cam

+0

나는 그걸 시도했다 .CREATE TRIGGER trg_SetDateCreated 사용자 삽입 : UPDATE 사용자 SET us_created = CURRENT_TIMESTAMP WHERE users.us_id = (select us_id FROM Inserted); 구문 오류가 발생했습니다. – cam

+0

좋습니다, 내 솔루션은 MySQL이 아닌 SQL Server 용이었습니다. 아마도 다른 누군가가 MySQL에서 동등한 트리거를 생성하기위한 구문을 제공 할 수 있습니다. 이 사이트는 귀하를 시작하게하는 좋은 장소가 될 것 같습니다 : http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html –

관련 문제