저는 디비의 컬럼으로 배열을 잘 안씁니다.

하지만 쓸수밖에 없을때가 있는데 배열로 된 것은 일반 쿼리문 하고 좀 틀리게 삭제등을 해야합니다.

알면 간단하지만 모르면 정말 해매야하는 부분 입니다.


그럼 간단하게 배열로 된 컬럼내의 특정 값을 select 및 delete를 해보겠습니다.


ex) testtable 테이블의 int_array컬럼에서 3이포함되어있는 열을 select합니다.

SELECT * from testtable WHERE 3 = ANY(int_array);



ex) testtable이라는 테이블에 int_array 라는 배열컬럼내의 배열들중 3만 삭제합니다.


UPDATE testtable SET int_array =array_remove(int_array , 3 ) WHERE 3 = ANY(int_array); 

'DB' 카테고리의 다른 글

우분투에서 unixODBC설정하기 (postgresql)  (0) 2014.12.19

우분투에서 unixodbc를 설치하고 ODBC 설정을 해보도록 하겠습니다.

postgresql 기반으로 설명하겠습니다.


우선 라이브러리들을 설치하겠습니다.

$ sudo apt-get install unixODBC unixODBC-dev
$ sudo apt-get install odbc-postgresql


설치를 완료하면 odbcinst.ini를 설정합니다. 우분투에서는 /etc 폴더 안에 존재합니다.


odbcinst.ini에 다음을 추가합니다. (기본 설치 시 이미 세팅되어 있는 것이 있을 수 있습니다.)

여기서 기억해야 할 중요한 사항은 [PostgreSQL] 입니다. PostgreSQL 이름으로 다음에 odbc.ini를 설정할 때 사용합니다.


[PostgreSQL]

Description             = PostgreSQL ODBC driver (ANSI version)

Driver          = psqlodbca.so

Setup           = libodbcpsqlS.so

Debug           = 0

CommLog         = 1

UsageCount              = 1


$ odbcinst -q -d 를 실행해서 odbcinst.ini파일을 등록해줍니다.

제대로 설정했다면 아래와 같이 나와야 정상입니다.


$ odbcinst -q -d

[PostgreSQL]


이제 odbc.ini를 설정해보도록 하겠습니다. odbcinst.ini 파일과 마찬가지로 /etc 폴더 안에 존재합니다.

아래와 같이 추가합니다.


[databasename]

Description             =

Driver           = PostgreSQL

Trace            = No

TraceFile               =

Database                = databasename

Servername              = 192.168.0.5

Username                = 

Password                = 

Port             = 5432

Protocol                = 6.4

ReadOnly                = No

RowVersioning           = No

ShowSystemTables        = No

ShowOidColumn           = No

FakeOidIndex            = No

ConnSettings            =


복잡한 옵션은 매뉴얼을 보시고 몇 가지 사항만 설명드리겠습니다.

Driver :  odbcinst.ini에 설정한 'PostgreSQL'을 입력해야 합니다.
Database : 접속할 데이터 베이스 이름을 입력합니다.

Servername : 접속할 서버의 IP를 입력합니다. localhost도 가능합니다.



모든 설정이 완료되었다면 이제 접속을 시도해봅니다.

접속 형식은 아래와 같습니다.

$ isql 데이터베이스명 계정명 '비밀번호'


ex )

$ isql databasename postgres 'password'


+---------------------------------------+

| Connected!                                                    |

|                                                                     |

| sql-statement                                                 |

| help [tablename]                                            |

| quit                                                               |

|                                                                     |

+---------------------------------------+

SQL>



이렇게 뜨면 접속 성공입니다.


만약 에러가 뜬다면 isql -v 명령어를 입력해서 바로 전의 에러를 알 수 있습니다.


간단하게 우분투에서 odbc 설정을 알아봤습니다. 다른 리눅스도 경로만 조금 틀릴 뿐 대부분 비슷합니다.





'DB' 카테고리의 다른 글

[SQL] 배열내의 특정 값을 삭제하는 쿼리문  (0) 2015.07.29

+ Recent posts