전체 글 354

[PGSQL][Sequence] column을 serial 키워드 지정했을 때 permission denied 뜰 때

sequence 접근 권한을 주어야 한다..네. sequence에 대해서도 공부해 봐야겠다. 우선 문서에는 이렇게 써 있네.. currval과 nextval.. 찾아보니 currval : 시퀀스의 현재 값을 알아내는 함수nextval : 시퀀스 값 1 증가 이렇네.. 정리해 보면, serial로 지정했을 시 자동으로 시퀀스르 사용하게 되는데, 시퀀스의 값을 다룰 때 currval과 nextval을 쓴다. 이 때, USAGE 권한을 주어야 저걸 쓸 수 있다는 것이구만..

DB/PostgreSQL 2016.09.15

[PGSQL][Trigger] NULL값 반환하는 트리거.

이렇게 하면 NULL을 반환하게 된다. NEW, OLD라는 미리 정의된 변수가 존재한다. NEW는 새로 생성될 ROW를 의미하고, OLD는 Update시 원래 있던 ROW를 뜻한다. 보통, 트리거를 따로 생성하지 않으면 NEW를 반환하는 트리거가 존재한다고 생각하면 된다. 만약 INSERT/UPDATE 시에 NULL을 반환한다는 건, 값을 계산하고, 다른 테이블에 INSERT든 뭐든 작업을 하고 실질적으로 이 테이블에는 아무것도 INSERT하지 않겠다는 뜻이 된다.

DB/PostgreSQL 2016.09.14

[Modern C++] lvalue와 rvalue의 이해

rvalue로 바꾼다는 것은 임시 객체로 만든다는 것이다 rvalue는 그 객체의 포인터를 가로채도 문제가 없다 함수인자가 rvalue로 들어와도 내부에선 lvalue취급을 한다(변수로 받았으니까) Reference Collapsing Rule int& & : int&int& && : int&int&& && : int&&int&& & : int& templatevoid deduce(T&& t); 일 때, T가 int형 lvalue or rvalue일 때 다음 규칙이 적용된다 int& && : int&int&& && : int&& std::forward()는 템플리트 함수의 인수를 다른 함수의 인수에 그대로 전달하기 위한 것이다. 이것을 perfect forwarding이라고 한다.

C, C++ 2016.09.09
반응형