mariadb trailing space

mariadb에서 varchar / char 컬럼을 사용할때 오른쪽 빈 공백 처리를 어떻게 할까요?

 

mysql에서 char, varchar 컬럼 형식은 trailing pad character 처리로 인해서 unique index에서 duplicate-key error 발생이 됩니다. http://dev.mysql.com/doc/refman/5.7/en/char.html

컬럼을 varbinary 형식으로 하시면 공백에 대한 unique index 생성이 가능합니다.

아래는 관련 테스트 내용입니다.

——————————————————————

MariaDB [ossk] create table t16 ( c1 varbinary(20), primary key (c1) );

Query OK, 0 rows affected (0.01 sec)

MariaDB [ossk]> insert into t16 (c1) values (‘a’), (‘a ‘); Query OK, 2 rows affected (0.00 sec)

Records: 2 Duplicates: 0 Warnings: 0

MariaDB [ossk]> show create table t16\G

*************************** 1. row ***************************

Table: t16 Create Table: CREATE TABLE `t16` ( `c1` varbinary(20) NOT NULL DEFAULT ”, PRIMARY KEY (`c1`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)


 

MSSQL에서는 해당 처리에 대한 설정을 ANSI_PADDING 옵션으로 할 수 있습니다.

 

Oracle에서 Mariadb로 마이그레이션 할때 관련 문제가 있을 수 있습니다.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s