DB
-
sql에서 정수 괄호 숫자의 의미 bigint(5)프로그래밍/의문 2018. 7. 24. 15:51
CREATE TABLE account_battle_pet_slots ( accountId int(10) NOT NULL DEFAULT '0', slot1 bigint(20) NOT NULL DEFAULT '0', slot2 bigint(20) NOT NULL DEFAULT '0', flags tinyint(3) NOT NULL DEFAULT '0', PRIMARY KEY (accountId)) 같은 쿼리를 봤다. MSSQL은 쿼리 실행도 안 되더라.위 쿼리는 MYSQL에서 사용된 쿼리인데 의미를 찾아보니 다음과 같았다. 결과 값을 출력할 때 앞에 0을 몇 개 표기할 건지를 지정한다. bigint(5)로 지정된 slot1에 1을 설정했다고 치자. 그럼 select 시 00001 같은 형식으로 보여지게 된다..
-
DB RETURN을 명시적으로 지정하지 않아 임의로 값이 바뀐 경우프로그래밍/의문 2018. 4. 6. 12:22
ALTER PROCEDURE spGiveStageClearReward @AccountID BIGINT, @StageID INT, @RewardItemID INTAS BEGIN BEGIN TRY INSERT INTO GameLog.dbo.ClearRewardLog ( AccountUniqueID, -- NOT NULL StageID, -- NOT NULL RewardValue) -- NOT NULL VALUES (@AccountID, @StageID, @RewardItemID, GETDATE()) END TRY BEGIN CATCH -- IGNORE EXCEPTION END CATCHEND위 프로시저에 인자로 NULL이 넘어오면 INSERT 구문은 예외를 뿜지만, try~catch 구문이 걸려있으므로 예외..
-
db는 insert 한 순서대로 select 되지 않는다.프로그래밍/의문 2017. 5. 2. 10:27
insert into EventCalendar(Type, Reward) values(1, 100) -- 0insert into EventCalendar(Type, Reward) values(1, 200) -- 1insert into EventCalendar(Type, Reward) values(2, 400) -- 2 순서로 insert 했다고 했을때 select * from EventCalendar를 한다고 해도 0,1,2 순서로 검색된다는 보장이 없다.(테이블에 특정 컬럼에 의한 정렬이 안 걸려있다고 했을 때) 약 130개? 정도를 넣었을 때, 순서대로 저장을 했길래 순서대로 저장되나 하고 착각을 했는데, 어느 순간 insert 한 순서로 저장을 하지 않아 데이터를 읽어 들일 때 오류가 발생하는 상황이..