달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

▶Mysql 리플리케이션(mysql 5.x 버전 기준!)      

- korea IDC 시스템엔지니어팀 -








#MYsql 리플리케이션이란? 
# Replication은 3.23.15부터 지원되기 시작한 기능으로 ‘복제’라는 사전적 의미에 맞게 마스터의 MySQL 서버의 데이터를 여러 대의 슬레이브 MySQL 서버의 데이터와 동기화 시켜주는 기능이다. 주로, MySQL의 데이터를 실시간으로 백업하거나, 데이터 서버의 부하분산을 하고자 할 때 많이 사용된다.




0. 서버 설정 


1번서버 - master 서버  : 1차네임서버 : 192.168.1.111
2번서버 - slave 서버     : 2차네임서버 : 192.168.1.222
 
mysql 버전은 모두 mysql 5.X 이다. 
두 서버 모두 mysql 데이터는 /free/mysql_data 에 위치해 있다고 가정한다.
 
 
 
1. Master 서버 설정
 
# vi /etc/my.cnf
 
(1) my.cnf 파일에서 #log-bin=mysql-bin 부분의 주석을 반드시 해제해준다
슬레이브 서버에서 저 바이너리 로그를 기준으로 데이터 리플리케이션을 실행 하기 때문에 저 로그파일이 꼭 필요하다!
 
(2) server-id = 1 로 설정한다. 
마스터서버와 슬레이브서버의 번호가 서로 다르기만 하면 되기 때문에 원하는 번호를 지정한다.
 

# Replication Master Server (default)
# binary logging is required for replication

log-bin=mysql-bin

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id       = 1

 
 
(3) slave 서버 에서 접속 할 수 있는 Mysql 계정을 생성해준다
# mysql -u root -p 로 디비 접속
mysql > GRANT REPLICATION SLAVE ON *.*  TO 유저명@접속허용할IP IDENTIFIED BY '패스워드';
 
접속허용할 IP에 특정 IP만을 부여 할 수도 있고 '%' 를 적어주면 모든 외부의 접속을 허용한다는 의미이다.
mysql > use mysql
mysql > select * from user \G;
명령로 설정이 되어 있는지 확인 할 수 있다.
 
아래 셋팅은 실제 마스터 서버인 1차네임서버 서버의 설정 내용이다.
 
접속을 허용한 유저 이름은    : nayana
nayana의 접속을 허용한 IP : 192.168.1.222 (2차 네임서버)
 
슬레이브 서버(192.168.1.222) 에서 nayana 라는 계정의 Replication 접속을 허용한 것을 볼 수 있다.

*************************** 10. row ***************************
                 Host: 192.168.1.222
                 User: nayana
             Password: *7CC252065609E6F96DD42A08D09D6C0DDBFBB0B1
          Select_priv: N
          Insert_priv: N
        Update_priv: N
         Delete_priv: N
         Create_priv: N
            Drop_priv: N
         Reload_priv: N
    Shutdown_priv: N
        Process_priv: N
               File_priv: N
            Grant_priv: N
   References_priv: N
            Index_priv: N
              Alter_priv: N
      Show_db_priv: N
           Super_priv: N
Create_tmp_table_priv: N
  Lock_tables_priv: N
         Execute_priv: N
     Repl_slave_priv: Y      <- 요 부분이 Y로 되어있으면 된다!!
     Repl_client_priv: N
  Create_view_priv: N
    Show_view_priv: N
Create_routine_priv: N
  Alter_routine_priv: N
   Create_user_priv: N
             ssl_type: 
           ssl_cipher: 
          x509_issuer: 
         x509_subject: 
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0
10 rows in set (0.00 sec)

 
 
(4) mysql을 재시작 하고 마스터 서버의 동작을 확인한다.
"mysql-bin.000022" 라는 바이너리 로그 파일을 생성한 것을 볼 수 있다.

mysql> show master status;

+------------------------+-----------+-------------------+------------------------+
| File                         | Position | Binlog_Do_DB  | Binlog_Ignore_DB  |
+------------------------+-----------+-------------------+------------------------+
| mysql-bin.000022   |     8385 |                         |                               | 
+------------------------+-----------+-------------------+------------------------+
1 row in set (0.00 sec)

mysql>

 
 
 

2. Slave 서버 설정

(1) 마스터 서버의 DB를 슬레이브 서버의 DB에 복사한다!(= 최초1회는 직접 복사해서 동기화해준다!)
이유는?
 
mysql 리플리케이션은 rsync와 다르게 동기화로 엮여진 시점부터의 DB변화를 동기화 시킨다.
 
[ 동기화 전 DB 구조]
마스터               슬레이브        
1                        1
2                        2
3
 
########## 동기화 후 마스터 서버에 4 라는 DB를 추가하면? #########
 
[ 동기화 후 DB 구조]
마스터               슬레이브        
1                        1
2                        2
3                        4
4
 
이렇게 4 라는 DB만 추가되고 3이라는 DB는 추가되지 않는다. 애초에 처음부터 DB내용이 달랐기 때문!
rsync 였다면 양쪽에 모두 똑같아 졌을 것이다.
 
 
[ 마스터 서버 ]
# cd /free
# tar zcvf mysql.tar.gz mysql_data
# sz mysql.tar.gz
 
압축한 파일을 다운받아 슬레이브 서버의 /free/mysql_data 디렉토리에 플어준다. 이로서 최초 동기화를 완료했다.
 
(2) /etc/my.cnf 파일을 수정한다!
57 , 62 번 라인은 주석처리해주고 98번 라인부터는 아래와 같이 주석을 풀고 마스터 서버에 접속할 정보를 적는다.
 

       # Replication Master Server (default)
       # binary logging is required for replication
57   # log-bin=mysql-bin

       # required unique id between 1 and 2^32 - 1
       # defaults to 1 if master-host is not set
       # but will not function as a master if omitted
62   # server-id       = 1

98   # but will not function as a slave if omitted
       server-id       = 2
       # The replication master for this slave - required
       master-host     = 192.168.1.111

       # The username the slave will use for authentication when connecting
       # to the master - required
       
master-user     = nayana

       # The password the slave will authenticate with when connecting to
       # the master - required
       master-password = 패스워드
       
       # The port the master is listening on.
       # optional - defaults to 3306
       master-port     = 3306
       # binary logging - not required for slaves, but recommended
       
log-bin=mysql-bin

 
 
(3) mysql 을 재시작 한후 mysql에 접속하여 동기화가 되었는지 확인한다.
동기화가 정상적으로 되었다면 아래와 같이 "Waiting for master to send event" 라는 구문이 출력된다!
 

mysql> show slave status;
+----------------------------------+----------------+-------------+-------------+---------------+------------------+---------------------+-------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+
| Slave_IO_State                   | Master_Host    | Master_User | Master_Port | Connect_Retry | Master_Log_File  | Read_Master_Log_Pos | Relay_Log_File          | Relay_Log_Pos | Relay_Master_Log_File | Slave_IO_Running | Slave_SQL_Running | Replicate_Do_DB | Replicate_Ignore_DB | Replicate_Do_Table | Replicate_Ignore_Table | Replicate_Wild_Do_Table | Replicate_Wild_Ignore_Table | Last_Errno | Last_Error | Skip_Counter | Exec_Master_Log_Pos | Relay_Log_Space | Until_Condition | Until_Log_File | Until_Log_Pos | Master_SSL_Allowed | Master_SSL_CA_File | Master_SSL_CA_Path | Master_SSL_Cert | Master_SSL_Cipher | Master_SSL_Key | Seconds_Behind_Master |
+----------------------------------+----------------+-------------+-------------+---------------+------------------+---------------------+-------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+
| Waiting for master to send event | 192.168.1.111 | nayana      |        3306 |            60 | mysql-bin.000022 |                8385 | mysqld-relay-bin.000015 |           235 | mysql-bin.000022      | Yes              | Yes               |                 |                     |                    |                        |                         |                             |          0 |            |            0 |                8385 |             235 | None            |                |             0 | No                 |                    |                    |                 |                   |                |                     0 | 
+----------------------------------+----------------+-------------+-------------+---------------+------------------+---------------------+-------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+
1 row in set (0.00 sec)

mysql>

 
이제 마스터 서버에서 DB를 생성하거나 삭제하면 슬레이브 서버에서도 똑같이 동기화가 될 것이다!! 올레~!

Posted by 위너즈
|

GUI로 제공되는 클라이언트들은 대부분 스크립트를 불러와 처리하는 기능을 제공한다.


하지만 CUI인 MySQL은 해당 기능들을 제대로 알고 있지 않으면 사용하기가 꽤나 까다롭다.


MySQL에서 sql파일을 불러와 처리하는 \. 명령어에 대해 알아보자.


C:\ 폴더에 test.sql 파일을 넣고 mysql에 접속한다.

 

C:\> mysql -u [username] -p [ENTER]

password: **********

 

mysql>

 

위와 같은 명령어로 접속을 해서 비밀번호를 입력한다.

 

mysql> \. test.sql  [ENTER]

 

\. 다음에 space를 눌러서 빈칸을 하나 넣어줘야 명령어가 실행된다.

 

위와같이 실행하면 파일로 저장한 쿼리를 실행시킬수 있다.


 member.sql 파일에 담겨져 있는 쿼리



 member.sql 실행과 결과물 출력


위 방법을 사용하여 쿼리를 입력하게되면 쿼리를 보존할 수 있게되고 유지, 보수하기가 한결 쉬워진다.


또한 적은 수의 쿼리를 사용할 때에는 직접 프롬프트에 입력해 사용해도 되지만


수백 수천건 이상의 데이터를 한번에 관리해야 한다면 일일이 입력하고 실행하기 힘들기 때문에


이같은 작업을 사용하게되면 당신의 수고를 덜어줄 것이다.

출처 : http://www.cyworld.com/OneByBang/3046071

Posted by 위너즈
|

데이타베이스 mysql을 설치할께요

 

http://www.mysql.com 에 가셔서,, 물어물어 찾아가보면

 

http://www.mysql.com/downloads/mirror.php?id=403506 까지 가게 됩니다.

 

 

퍼런글씨 클릭 :: >>No thanks, just take me to the downloads!

 


 

 

태극기 :: Kyung Hee~~~~~~~~User Group ..  HTTP 로 받아도 빠르게 받아지는군요

 


mysql-installer-5.5.15.0 <--- 이파일을 받았다면,, 설치하셔야죠. 더블클릭하세요

 

http://www.microsoft.com/downloads/ko-kr/details.aspx?familyid=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=ko

 

만약 .NET Framework 4가 설치되어 있지 않다면,, 받으셔야됩니다...

 

받고나서 보안패치//UPDATE//까지 하시구요..(설치다되면 마지막장면에 update라고 나와요.)

 

XP는 서비스팩3이상....이라고 되어있으니.. 참조하구요.. 계속~~

 

 

Install MySQL Products 클릭

 

I accept~~~~ 체크//그옆에꺼 send~는 알아서 하세요 ^^;;,, Next ...

 

 

체크안하고 Execute 한번에 안되면,, 두번하면 되요 ...

 

 

이 화면으로 넘어오면 되는데.. 노란삼각형 주의표시는 이전에 깔았던 mysql이 다 지워지지 않은 관계로 저렇게 되네요

 

여러분들은 안뜨겠죠???

 

Next> 눌러주세요

 

 

Execute누르면

 

Visual C++ 2010이 없으면 몇번클릭으로 받게 됩니다..

 

그런후에 Execute가 Next>로 바뀌죠 ^^ 클릭

 



 

 

전부는 필요없지만,,  Next> 클릭후에 Execute 클릭하세요..

 




맨위에것 선택하고 Next> 클릭

 

 

 

Root Password 와 Repeat Password를 입력하시고,, Next > 클릭

 


 

 

 

노란삼각형 주의표시 또 나왔네요~~ 어쨋든 두개다 설치가 되었으니

 

Next > 클릭 

 

 

여기서 Finish하면 설치는 끝이지만,, Workbench가 뜨게되니.. 저건 잠깐 체크해제하세요..

 

바탕화면내컴퓨터를 마우스 우클릭해서 속성선택

 

시스템정보 ==> 고급탭 ==> 환경변수 ==> 창이뜨면,,

 

시스템변수(S)에서 Path 를 더블클릭하거나 Path선택후 편집을 누르거나,, 없으면 하나만들어요.

 

시스템변수 편집 창이 뜨면,, 변수값에 C:Program FilesMySQLMySQL Server 5.5 in 를

 

입력합니다.. 입력하는 방법은 각폴더간의 구분은 세미콜론 ; 입니다.

 

즉, c:apache;c:php5 이런식이죠..

 

확인누르고,, 또 확인,, 또확인.. 세번하면 닫히죠..

 

 

 

 

\\\\\\\\\\\\\\

 

이제 실행이 되나 알아볼차례인데요..

 

시작 ==> 실행 눌러서 cmd입력합니다..

 

 

cmd창이 뜨면..

 

 

명령창에 mysql -u root -p 를 입력하고 엔터치면 패스워드 물어봅니다.. 아까 설치할때

 

썼던것 기억하시죠?? 그것 쓰면 됩니다.

 

\\\\\\\\\\\

 

 

 

이상으로 데이타베이스 설치를 끝냈습니다.........................

출처 : http://blog.naver.com/workdoumi?Redirect=Log&logNo=140140569122
Posted by 위너즈
|

MySQL을 사용할때 command창을 선호하시는 분들도 계시나...

(항상 전 시작은 이런식으로 하는듯;)

 

좀 편하게 사용하시라고 프로그램 하나를 소개해 드리겠습니다.

 

바로 SQLyog라는 녀석입니다.

 

개인적으로는 MySQL 공식사이트에 있는 MySQL Query Browser란 녀석보다 좋아라합니다.

 

이것도 추후 기회가 되면 소개하고... 우선 여기서는 SQLyog에 대해서만...



8.14버전에 와서 다시 글을 수정한 것은 이전 8.05에 썼던 내용에 비교해서 세부적인 부분들이 바뀌었기에 수정하였습니다.


1. 다운로드

 

http://code.google.com/p/sqlyog/downloads/list

 (이번에 사이트를 개편하면서 아예 다운로드를 구글 코드에서 받도록 하였더군요;ㅋ)

 

위 사이트에서... 제일 위에 있는 녀석을 다운로드 받읍시다^^; (그러니까 최신버전을ㅎ)

 

2. 설치

 

설치시에는 뭐; 그냥 따라가시면 됩니다^^;

 

3. 간단한 사용법

  

 

 

실행시키면 두둥! 이런 페이지가 뜨게 됩니다. 무섭게 buy버튼도 있고...

 

그냥 쌩~하고 Continue누르시면 됩니다.

 

 

DB에 연결해봅시다.

 

먼저 조금 오래전 버전들과는 다르게(워낙 자주 업데이트가 되다보니;) New를 눌러서 연결 정보를 저장해야합니다.

 

(예전에는 빈칸채우기?! 할 수 있었는데 말이죠)

 

 

그러면 위와 같이 Connection 이름을 적으라고 나와있는데 원하신는 이름을 적으시면 됩니다.

 

접속을 위해서 입력할 수 있는 칸들이 활성화됩니다

 

host address는... 저같은 경우에는 제 컴퓨터에 설치된 MySQL에 접속하기 때문에 localhost로...

 

User name은 접속하고 싶은 user name으로... (물론 user가 만들어져 있어야겠죠^^;)

 

비밀번호는 user의 비밀번호로...

 

열고 싶은 데이터베이스 적고...(안적어도 크게 상관은 없습니다.)

 

Connect~!

  

 


그러면 이렇게 나오는데...

 

제가 create~~쓴 부분이 query문 적는 부분이고~

 

왼쪽 옆에 DB들을 GUI로 보여주는 부분이고~

 

아랫부분이 Query 수행결과를 보여주는 것입니다~

 

근데 Query를 어떻게 실행시키면 되냐면요^^;

 

마우스 오른쪽 버튼 누르면 나오는 메뉴에서 다음을 선택해보면 실행할수있게 나올텐데...

 

F9 번 정도는 외워두면 편하겠죠?ㅎㅎㅎ 단축키 보시라고 캡쳐화면 보여드린거구요^^;

 

물론 위에 메뉴바에도 이런거 있습니다;ㅋㅋ

 

 

 

 

이제 GUI라고 하니 GUI답게 좀 써봅시다

(개인적으론 그냥 SQL문 치는게 속 편한 적이 많긴하지만;)

 

user에서 마우스 오른쪽버튼 클릭하면 다음과 같은 기능들을 수행할수 있습니다.

 

Create database 하면 이렇게 뜨는데... 설정 선택해서 create하면 DB가 생깁니다.

 

 

디비를 선택해서 마우스 오른쪽버튼 누르면 다음과 같이 나타납니다~!

 

MySQL에 조금 익숙하신 분은... 각각 기능이 무엇인지 아실 것입니다...

 

 

그냥 몇가지만 쭈~욱 보시라고 보여드리면...

 

테이블 만드는거~

 

 

SQL Dump로 backup도 되네요~

 

 
SQL dump를 import하는 부분도...


여기까지 하고... 또 하나... 테이블을 보게되면...

테이블을 열때 select * from ~~~ 하셔도 되지만

옆에서 테이블을 선택하셔서 오른쪽 버튼 누르고 open table을 선택하셔도 됩니다.



밑 부분에... 이렇게 나타나게 되는데...

테이블 모양으로...

 

 

수정하거나 삽입하고 싶은 열에 데이타 칼럼을 더블클릭하면...

 

테이블 안에 값들을 SQL문 없이 직접 수정할수있게 바뀌게 됩니다.

 

아까는 활성화되지 않았던 옆에 부분들이 활성화된거죠...

 

메뉴에 File에보면 sql파일로 저장하고 불러오는 기능이 있습니다 ㅎ 혹시나 해서 적어봅니다. 매번 sql문 다 쓰지 마시고^^;ㅋ

 

버전 7에 비해 전체적으로 깔끔해졌고 사용자의 실수를 많이 막을수있게 발전한 것 같습니다.

 

자동으로 예약어들은 대문자로 바꾸어주는 것도 마음에 들구요ㅎㅎㅎㅎ 


Posted by 위너즈
|


메모만 해두고 블로그에 적는 것을 까먹고 있었던 내용을 간만에 적어본다.

혹시 테이블 생성할 때, INT 에 괄호치고 값을 넣어 본 기억이 있는가?
아니면, 왜 이거 INT(8)이야? 하면서 테이블 생성자에게 화를 내본적이 있는가?

그렇다면....... 당신은 바보~ -0-/
헉...!!! ..... 내가 말을 잘 못했소... 돌던지지 말아주시오~~

(*,.ㅜ);;

자... 간단히 테스트를 해보자.

<< 예제 >>
##################################################################################################
# 1. 테스트 테이블 생성
CREATE TABLE int_test (
    int_1 INT(1),
    int_1_z INT(1) ZEROFILL,
    int_5 INT(5),
    int_5_z INT(5) ZEROFILL,
    int_9 INT(9),
    int_9_z INT(9) ZEROFILL,
    int_11 INT(11),
    int_11_z INT(11) ZEROFILL
)ENGINE=INNODB DEFAULT CHAR SET =UTF8;

# ---------------------------------------------------------------------------

# 2. 테스트 값 넣어보기
INSERT INTO int_test VALUES(1,1,1,1,1,1,1,1);
INSERT INTO int_test VALUES(12345,12345,12345,12345,12345,12345,12345,12345);
INSERT INTO int_test VALUES(1234567890,1234567890,1234567890,1234567890,1234567890,1234567890,1234567890,1234567890);
##################################################################################################

당신의 평소 생각대로라면,
# ------------------------------
SELECT *
FROM int_test;
# ------------------------------
의 결과는?

<< 수행 결과 >>

 

 mysql> SELECT * FROM int_test;
+------------+------------+------------+------------+------------+------------+------------+-------------+
| int_1           | int_1_z        | int_5           | int_5_z       | int_9           | int_9_z       | int_11          | int_11_z       |
+------------+------------+------------+------------+------------+------------+------------+-------------+
|                1 |               1 |                1 |          00001 |               1 |   000000001 |                1 | 00000000001 |
|          12345 |         12345 |          12345 |          12345 |         12345 |   000012345 |          12345 | 00000012345 |
|   1234567890 | 1234567890 |   1234567890 |  1234567890 | 1234567890 |  1234567890 |   1234567890 | 01234567890 |
+------------+------------+------------+------------+------------+------------+------------+-------------+
3 rows in set (0.00 sec)

 


얼래? 이거... 당신이 예상하던 값과는 다르지 아니한가?

분명히 INT(n)하면  n개만 입력될 것이라 생각했었는데,
값이 몽땅 들어가버리네???

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
를 보면, 이에 대한 명확한 설명이 있다..

짧은 잉글리쉬 실력으로 요약해 보자면,

INT의 괄호는 보여지는 숫자의 개수의 제약을 의미하는 것이 아니다.
아무리 INT 옆에 괄호치고 숫자를 넣어봐라, 들어갈 수 있는 한계는 언제나 같을 껄? ㅋㅋㅋ (의역 -0-;;)
INT의 괄호 옵션은 ZEROFILL을 위한 거다.

대부분의 숫자형 데이터 타입은 옵션으로 ZeroFill 이란 것을 가지게 되는데,

화면에 숫자를 표시할 때 숫자 왼쪽에 0을 붙이라는 뜻입니다.
즉, Int(5) ZeroFill이라고 정의된 필드에서 저장된 값 3을 불러온다면 "00003"과 같이 표시됩니다.


만약 괄호 안에 5를 집어넣었다면(INT(5)), 5자리 내의 숫자는 0으로 채워지게 된다.
쏼라쏼라....

개뿔.. 이넘의 짧은 영어... 영어 때문에 속이 울렁거린당 (-ㅠ-);;

요약하자면,
INT의 괄호 옵션 기능은 ZEROFILL에서 0이 채워지게 되는 개수이고,
실제 저장공간 및 입력 가능 한계는 동일하다는 의미이다.

위 실행결과에서도 볼 수 있듯이,
INT(1), INT(5), INT(9), INT(11)에 들어가는 값은 동일하며,
INT(1) ZEROFILL, INT(5) ZEROFILL, INT(9) ZEROFILL, INT(11) ZEROFILL 에서만,
0이 들어가는 개수에 차이가 있음을 볼 수 있다.

그나마 ZEROFILL의 한계를 넘어버리면, 그 때부턴 구분도 안 간다 -0-;;;;;

자, 정리하자!!

앞으로 INT(n) 에서 n이 자기 맘대로 들어가 있다고 애꿎은 사람 잡지말고,
'풋! ZEROFILL을 위한 공간이군! 쯧쯧쯧...'
하면서 아는체 해주는 쎈쓰를 보여라!!!

그럼, 당신은 위대한 인물로 추앙받고 존경받으리~~~ ......... 는 아니겠징 -0-;;;;

이상!

 

 


[2009-01-09] 덧글에 대한 설명을 위해 아래와 같이 추가합니다 ^0^/

결론부터 말씀드리자면, 오라클에서는 실제 자리수를 표현하는데 사용됩니다. ^^
아래 예제를 볼까요?

<< 예제 >>
##################################################################################################
# 1. 테스트 테이블 생성
CREATE TABLE number_test (
    NUMBER_2 NUMBER(2),   
    NUMBER_5 NUMBER(5)
);
# ---------------------------------------------------------------------------

# 2. 테스트 값 넣어보기
INSERT INTO number_test VALUES(12,12);
INSERT INTO number_test VALUES(12345,12345);
##################################################################################################

의 결과는?

<< 수행 결과 >>

 

SQL> INSERT INTO number_test VALUES(12,12);

1 개의 행이 만들어졌습니다.

SQL> INSERT INTO number_test VALUES(12345,12345);
INSERT INTO number_test VALUES(12345,12345)
                               *
1행에 오류:
ORA-01438: 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다.


SQL> SELECT * FROM number_test;

  NUMBER_2   NUMBER_5
---------- ----------
        12         12

 

 

참고가 되셨으면 합니다. ^^

출처 : http://blog.naver.com/nadarim/70048293499

Posted by 위너즈
|