어떤 작업을 하는중이였는데, 40만 row가 들어있는 테이블을 MySQL로 지지고 볶고 있었습니다.

필요에 따라서는 테이블간 Join을 하였는데


주변 친한 형님이 왜 그렇게 하냐고 Merge를 하라고 하더군요..

찾아보니..MySQL에서는 동일한 기능이 ON DUPLICATE KEY UPDATE 이거였는데,,


결국에는 제가 하는 어떤 작업을 위해서는 Insert + Select + ON DUPLICATE KEY UPDATE 를 같이 써야 되는구조여서 한참 구글링을 하다가 옆나라 블로그에서 찾았네요 ..




INSERT INTO total (id,count) SELECT id, count 

     FROM (SELECT id, count FROM daily GROUPBYdate) t

ON DUPLICATE KEY UPDATE count = t.count


http://d.hatena.ne.jp/pullphone/20121203/1354502080



저작자 표시 비영리 변경 금지
신고

sqoop export 를 할때 For input string: "\N" 해결 할수 있는 방법

Sqoop export 옵션에  --input-null-string '\\N' --input-null-non-string '\\N' 추가 



2015/10/29 - [Study/--Hadoop Eco(Apache/HDP)] - Sqoop 1.4.6 설치, 사용 예제(Migrating data using sqoop from Mysql to HBase)

2015/11/16 - [Study/--Hadoop Eco(Apache/HDP)] - Hive를 이용해서 Rank 구하기

2015/12/23 - [Study/--Hadoop Eco(Apache/HDP)] - Sqoop-export : from hive to mysql




저작자 표시 비영리 변경 금지
신고



환경은 Cetnos 64bit 30GBRAM, MySQL 5.7 버전을 사용하고 있습니다. 

많은 텍스트들을 보면 Hadoop MapReduce에서 반복적인 작업은 지양하라고 되어있는데,


현재, 싱글 머신에서 돌리기에는 양이 너무 많아서(쓰레드를 붙이더라도)... MapReduce에 약간의 꼼수를 써서 포팅해서 사용하고 있습니다. 


현재 10개의 Hadoop Node에서 총 40개의 Task(MapReduce) 걸었습니다.


Map 작업 한번에 총 약 12개 정도의 쿼리를 날립니다.


사실 이 쿼리가 단일 머신에서 할때는 0.55ms 정도 나오는데 10Node로 동시에 Query를 날리니 9s 넘게 걸리더군요.. 물론 제가 쿼리를 엉망으로 만든것은 있습니다.


이러한 문제점을 해결하기 위해, 쿼리에 사용되는 Table 들을 MemoryDB로 전환해서 올려논 상태입니다.

예를들면 create table Memory_1 like Orginal 1, 후 insert into Memory_1 select * from Original 이런식으로요


그런데 중간에 MySQl Memory DB Table is FuLL 에러가 나는것입니다. 옮기는 절차는 Python 으로 스크립트를 만든 상태입니다. 


이때 구글링을 해보니 max_heap_table_size 변경해주라고 하더군요, 저 같은경우는 결론적으로 15GB 정도로 했는데, 중간중간 값을 변경해 가면서, 값을 올린 케이스 입니다. 


SET max_heap_table_size =16106127360 //Bytes





현재 당장은, Workbench 에 나온데로 처리는 하고 있습니다...


아무래도 이번에 바쁜일이 끝나면, NoSQL쪽이나 MySQL, MariaDB 쪽도 좀더 파봐야될것 같습니다. 






저작자 표시 비영리 변경 금지
신고

만약 Hive에서 test라는 테이블을 mysql로 옮길때는 

1. Hive의 Test와 동일한 Test테이블을 Mysql에 생성

2. sqoop 을 이용 


sqoop export  --connect jdbc:mysql://192.168.1.1/database --username user --password password --table test --export-dir /apps/hive/warehouse/test --input-fields-terminated-by '\001' --lines-terminated-by '\n'



저작자 표시 비영리 변경 금지
신고

현재 사용중인 리눅스는 Centos6 64bit 이고 MySQL 버전은 기본 5.1 버전입니다. 


5.7로 업그레이드 하기 위해서는 다음과 같은 절차로 진행하시면 되십니다. 


먼저 MySQL 사이트에 들어가서 RPM 을 바운받아 YUM repo를 추가합니다. 


http://dev.mysql.com/downloads/repo/yum/



MySQL ComunityMySQL Comunity



  1. wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm :: 설치 
  2. /etc/init.d/mysqld stop :: mysql 정지 
  3. yum remove mysql mysql-server* 기존 mysql 삭제
  4. yum install mysql-server :: 5.7 설치 
  5. /etc/init.d/mysqld start ::  mysql 시작
    1. 만약 이때 failed 가 뜨면 tail /var/log/mysqld 확인해서 문제 요소 해결(저의 경우에는 [ERROR] unknown variable 'default-character-set=utf8' 이런 오류가 떠서, my.cnf에서 관련설정들을 주석 처리하였습니다..)
  6. mysql_upgrade -u root -p
  7. MySQL 사용


저작자 표시 비영리 변경 금지
신고

일단 현재 상황은 MySQL 안에  366996 로우가 들어있는 상황이고, 여기안에 데이터가 있는 상황입니다

여기에 데이터가 있는데, 랭킹을 매겨야 하는 상황입니다. 


select B,T,(select count(*)+1 from 9_Spending_blk where T>t.T) as rank from a_blk as t order by rank asc;


SELECT a.B,
      a.T,
        count(b.T)+1 as rank
FROM  9 a left join 9 b on a.T>b.T and a.B=b.B
group by  a.B,

      a.T

통해서 RANK를 구하려고 했는데, 생각보다 느리게 되더군요.... 
MySQL로 구하는거 포기하고HIVE로 옮긴다음 해봤더니 금방 구할수 있었습니다.

절차는 다음과 같습니다. 

sqoop import --connect jdbc:mysql://127.0.0.1:3306/my --username root --password xer --table ttt  --hive-import –m 1


그다음 Hive에서 


select s.d, s.t, rank() over(ORDER by t asc) as rank from ttt as s


했더니, 14초만에 답을 얻을수 있었습니다.


자동으로 맵리듀스 작업이 걸리는게, 직접만들지 않아도 되서, Hive는 역시 좋네요..

이제 이걸 mysql로 돌려보내야하는데.. 

어떻게 했더라.. sqoop으로 될텐데.. 


저작자 표시 비영리 변경 금지
신고

Sqoop2 가 있지만, 1이 익숙한 관계로 다음은 MySQL 에서 Hbase로 Migration 하는 예제 입니다. 



wget http://mirror.apache-kr.org/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

tar zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha /usr/local/sqoop


vim /etc/profile

  export HBASE_HOME=/usr/local/hbase

  export SQOOP_HOME=/usr/local/sqoop

  export PATH=$PATH:$SQOOP_HOME/bin:$HBASE_HOME/bin:$PATH

source /etc/profile



 sqoop import --connect jdbc:mysql://127.0.01:3306/test --username root --password test --table bc_1  --split-by QKEy --table bc_1 --hbase-create-table --hbase-table test2 --column-family test23 







저작자 표시 비영리 변경 금지
신고

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure


혹시 저와 같은 경우의 분이 계실까봐.. 남깁니다.


일단 저의 상황입니다.(케이스마다 다르겠죠..)


저는 A라는 서버에서 운용중이였던 MySQL을 B라는 서버로 옮기고, C라는 위치에서 B라는 서버로 JDBC를 이용하여 MySQL을 접속하려고 하는 상황입니다.


현재 저 같은경우는 mysql 내부 설정(접속 % 라던지,) 이 다되어 있었지만, 제가 실수로 /etc/my.cnf 에 있는 bind-address를 주석처리를 안한상태로 mysql을 기동시킨 상태였습니다.


만약 저와 같은 경우라면 my.cnf를 한번 확인하시는것도 좋으실것 같습니다.


저작자 표시 비영리 변경 금지
신고
  1. Favicon of http://adunhansa.tistory.com BlogIcon 아둔한사 2014.04.22 18:50 신고

    문제 해결됐습니다. 감사합니다. ㅎㅎ

when the hurly-burly's done
when the hurly-burly's done by harold.lloyd 저작자 표시비영리동일조건 변경허락



아 이오류 잡느라 -_- 꽤 시간을 많이 소비했네요 ,  의외로 간단한 오류입니다.

일단 저같은경우는 mysql 5.5가 나왔길래, 모 트레젝션이 강화되고 등등 전반적으로 성능이 좋다고 하니 호기심에

./configure 옵션설정방법에서 CMAKE로 바뀌는 바람에 애좀 꽤나 먹었습니다.

일단 그 설치방법은 다음 포스팅때 쓰도록 하겠습니다


/etc/init.d/mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/블라블라.pid)

이런식의 오류가 뜨는겁니다.

cat /usr/local/mysql/data/블라블라.pid
110916 08:01:44 mysqld_safe mysqld from pid file /usr/local/mysql/data/블라블라r.pid ended
110916 08:04:22 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
^G/usr/local/mysql/bin/mysqld: File './mysql-bin.index' not found (Errcode: 13)
110916  8:04:22 [ERORR] Aborting
일단 로그를 보니, 에러 13이라고 뜨는부분이 있네요.. 구글링을 검색하니까. 저같은경우 /data안에 mysql-bin.index가 생성되는데,

저도 DB전문가는 아니고^^ 그래도 얼마 안남은 학부생이다보니..
일단 이게 mysql하고 일치하지 않아서 그걸 지우면 된다고 하네요. 일단 해결방법중 하나입니다.

그런데 저 오류가 더 뜨는것입니다.
아 모지 이러는데 구글느님의 말씀
Error code 13 means permission denied. Did you check the permissions on your MySQL data files?

권한 체크해보라는겁니다.

ls -al
/data root root 웁스..
ㅋㅋㅋㅋ chown -R mysql data
ㅋㅋㅋㅋㅋ
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋStarting MySQL.. SUCCESS!


아 그리고 제가 이거전에 또다른 오류 로그가 있었는데, 그걸 지워버렸네요

일단 요 5.5 버전이 euckr에 친한것 같지 않습니다.

꼭 euckr사용하실꺼면
-DDEFAULT_CHARSET=euckr
-DDEFAULT_COLLATION=euckr_korean_ci 꼭 같이 넣어주세요

대세가 UTF-8이라고 하지만 , 제가 사용하는 기반이 euckr이다보니,,,
제가 테스팅해본거는 저기서
-DDEFAULT_COLLATION=euckr_korean_ci 이걸 빼고서 make 해서 install 해서 실행하게 되면
Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/블라블라.pid)
똑같은 오류가 뜨는데

그 오류 로그가

latin-어쩌구 저쩌구 하면서 euckr 이라고 뜹니다;; 로그가 없어서 어떻게 확실히 남겨놓지 못하겠지만,, 암튼 캐릭터셋 문제인것 같습니다..


아 컴퓨터한테 한국어를 가르치던지 해야지 .. 참나. ㅋㅋㅋㅋㅋ 즐겁게 추석 보내셨나요 ㅋㅋ 그럼 오늘도 즐거운 하루되세요

저작자 표시 비영리 변경 금지
신고

 create database 데이터베이스명;

grant all privileges on 데이터베이스명.* to 사용자명@localhost identified by '패스워드';

flush privileges





분명히 중간에 한가지 과정이 있는데 기억이..안나네;;;;

일단 저렇게 하면, mysql -u 사용자명 데이터메이스명 -p 하면 접근됩니다

저는 mysqldump 떠논게 있어서 < 파일명.sql 넣으면 끝



저작자 표시 비영리 변경 금지
신고

mysql을 설치했는데, 루트암호를 지정해서 mysql하면 그냥 들어가지더군요

찾아보니 익명사용자때문에 그랬다고 하네요 . 


구글신 만세


root]# mysql -u root -p

mysql> DELETE FROM mysql.user WHERE user = ''; -> anonymous 접근을 삭제한다.

mysql> FLUSH PRIVILEGES;
저작자 표시 비영리 변경 금지
신고
Sanctuaire du Mont Saint-Joseph - Val Racine + I've been Tagged
Sanctuaire du Mont Saint-Joseph - Val Racine + I've been Tagged by BurgTender 저작자 표시비영리동일조건 변경허락

현재 제가 사용하는 OS 는 centos 5.4 이고, 커널은 2.6.18-164.6.1.el5
mysql 버전은  -5.0.77 이고

현 상황은. php register_global 인가 이옵션이 안먹혀서.. Yum을 통해서 httpd mysql을 설치하고 php을 configure을 하던중 생긴 오류 입니다.

Configure: error: Cannot find MySQL header files under /usr.
Note that the MySQL client library is not bundled anymore!

만약 이러한 문제가 생기셨을 경우에는 yum install mysql-devel 이거 하나면 끝입니다..


저작자 표시 비영리 변경 금지
신고
  1. Favicon of http://drea.tistory.com BlogIcon Dreamer 2013.02.05 02:59 신고

    ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib

    간단해결요 심볼릭 걸어주면됩니다.

    • Favicon of http://redeyesofangel.tistory.com BlogIcon Yuika eizt 2013.02.05 16:24 신고

      오 감사합니다

      그렇게 멋진 방법이 있었군요 ㅋㅋㅋㅋ


Oracles Profits Jump 35 Percent Amidst Downsliding Economy

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

이런메세지가 나오면, 현재 mysql이 많이들 돌고 있다고 합니다.

service mysqld start 하나면 끝납니다..

:: 데몬을 활성화 했더니, 이번에는... root 암호가 틀렸다고 나오네- 분명히 저거 맞는데 ;;



저작자 표시 비영리 변경 금지
신고

'Study > Linux' 카테고리의 다른 글

런레벨  (0) 2009.11.24
debian, sudo 설정  (2) 2009.11.23
sshd에서 root 로그인 막기.  (0) 2009.11.23
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)  (0) 2009.11.21
윈도우7 grub 제거하기.  (4) 2009.11.21
xming  (0) 2009.10.28
debian 5 ,한글 메뉴, 한글되게 하기,,  (0) 2009.10.19
Cent 서버에 약간의 문제가 생겨서, DB쪽을 보다가-;;
삭제해야할게 생겼는데, Read Only라고 뜨면서 실패합니다.

일단, 이번 서버는 YUM 으로 설치한 관계로

/var/lib/mysql/DB명 << 여기에 DB관련 폴더들이 저장되어 있습니다.

아마도 제가 재대고 했다면, 저같은경우는 잘돌아가는것처럼 보이거든요;;

chmod 777 폴더명

정정 ::
cd /var/lib/mysql/DB명
chown -R mysql:mysql ./*


해보세요, 그러고서도 , mysql상에서 테이블이 안지워지거나 하시면 mysql을 다시 시작해보세요.

저작자 표시 비영리 변경 금지
신고
Portrait of a white beauty
Portrait of a white beauty by Tambako the Jaguar 저작자 표시변경 금지

아무리 생각해도, 리눅스 배포판 종류가 너무 많은것 같아요-

Centos 5.3을 하고 있었는데- 갑자기 다른 배포판을 깔고 싶은거예요;;

그래서 처음에는 페도라를 깔려고 했어요;; 와 이거 설치하는데 도대체 파일까는데만 1시간이 넘게 걸린것 같아요- 그래서 그냥 짜증나가지고-

데비안으로 바로 바궜다는;; 그 모랄까- 레드햇에서 Yum을 쓰는데, 데비안쪽은
apt-get을 사용하더라고요;; 그런데; 개인적인 생각인데 Centos에서 apm을 yum으로 설치하는데- 약간 시간이 걸리고 복잡한 느낌이였는데- 이거 데비안은 그냥 깔아버리네요ㅕ;;


$ sudo apt-get install apache2
$ sudo apt-get install libapache2-mod-auth-mysql
$ sudo apt-get install mysql-server mysql-client
;; 여기까지 하면, mysql root 암호 입력하라는 화면이 나옵니다, 그곳에서 mysql root암호를 지정하시면 됩니다.
$ sudo apt-get install php5-common php5 libapache2-mod-php5
$ sudo apt-get install php5-mysql
$ sudo /etc/init.d/apache2 restart

이렇게 하시면 완전, 설치부터 그냥 한방에 가버립니다.

저작자 표시 비영리 변경 금지
신고

리눅스와 놀던중, 접근 권한이 없다느니,, 막이러면서..

결론은

#killall mysqld

# mysqld_safe --skip-grant &

# mysql

- mysql> use mysql
- mysql> update user set password=password('new password') where user = 'root';
- mysql> flush privileges
http://sunnyn.com/research/dispBoardTagList/4529 << 정확한 정보는 여기에서..''


아악!!! 모이 이건!!! 이것때문에, 얼마나 시간이 지나갔는데;; 도대체 무슨짓을,, ;;
kill 죽여 all 모두를 mysqld << 이거는 데몬에서 /etc/init.d/mysqld start 할때 비슷한 놈같고;;

mysqld_safe --skip-grant & 넌 또 모니..;; 아 갈길이 멀구나ㅠㅠ


저작자 표시 비영리 변경 금지
신고
Flickr Tag Mapping
Flickr Tag Mapping by unclesond 저작자 표시비영리변경 금지

생각이 짧은걸까요..;; 아 이래서 이론이 싫어,.ㅠㅠ

릴레이션, 투플, 애트리뷰트..;; 그냥 테이블, 레코드, 필드라고 하자고..!!

해깔려;; 또,, Domanin constataint key constaint,, 무결성 제약조건..

그냥..ㅠㅠ 쉽게좀 나가자고요ㅠㅠ

저작자 표시 비영리 변경 금지
신고

'Think' 카테고리의 다른 글

FreeBSD, OPen soraris  (0) 2009.12.24
육군본부로부터 선물을 받다.  (6) 2009.12.22
티스토리 초대장 배포합니다(종료)  (39) 2009.10.01
릴레이션 , 투플 이건 또 모야.;  (0) 2009.09.27
요즘 보는책,,  (0) 2009.09.23
트위터와 언론사의 조화?  (0) 2009.09.13
스팸 폭탄 다시 시작된건가...  (0) 2009.09.12
*** glibc detected *** double free or corruption (top): 0x08d34008 ***

혹시 gcc에서 이런 오류가 나오나요?

일단 저 같은 경우는 완벽히 사용법도 모르고 하기 때문에. 만약 저처럼 mysql 을 C로 연결시키시는 중이라면

혹시 중간에 mysql_free_result(res)를 사용하셨나 보세요;; 일단 저같은 경우는 이걸 지우니까 바로 없어지네요.


저작자 표시 비영리
신고

'Study > C / C++' 카테고리의 다른 글

온라인 man  (0) 2009.07.02
Bool  (6) 2009.07.02
C언어, 랜덤함수 , 포인터  (2) 2009.06.20
*** glibc detected *** double free or corruption (top): 0x08d34008 ***  (0) 2009.06.10
배열초기화  (0) 2009.06.10
string.h 함수  (0) 2009.06.02
main 함수  (0) 2009.06.02
bzero(query,sizeof(query));
memset(query,0,sizeof(query));

만약 제대로 알고 쓰고 있다면;; ;;만약 저게 초기화가 아니라면;; 난 잘못 알고 있는건가;

mysql 만세;

저작자 표시 비영리
신고

'Study > C / C++' 카테고리의 다른 글

Bool  (6) 2009.07.02
C언어, 랜덤함수 , 포인터  (2) 2009.06.20
*** glibc detected *** double free or corruption (top): 0x08d34008 ***  (0) 2009.06.10
배열초기화  (0) 2009.06.10
string.h 함수  (0) 2009.06.02
main 함수  (0) 2009.06.02
sprintf  (2) 2009.05.25


현재 PHP, Mysql 쿠키 부분을 공부하고 있습니다..

일단,, 어떻게 설명을 해야할지 모르겠지만..

쿠키가 아주 잘만들어졌는지 확인 하는 방법을 찾게 되었습니다.. 의외로 간단했어요

주소 표시줄에  이렇게 입력하고 엔터를 누르면


팝업이 하나 뜨네요..;;



일단,, 제가 하는걸로는 쿠키는 컴퓨터가 잘 먹고 있나 봐요;;

쿠키가 그렇게 맛있나..?ㅋㅋㅋㅋㅋㅋㅋㅋ
저작자 표시 비영리
신고

,,,,현재 데이터베이스프로그래밍을 공부하고 있습니다..(학교, 과목..)

저번주에 사정이 있어서 ,, 수업을 못들어가서 따라갈려고 혼자 공부하는데;;;

와,,update이거 ,,

일단,, 신지식에는 질문으로 신청했는데,,

일단 이건 제 현제 테이블 입니다.

---------------------

student_name | age

----------------------

  0                    | 25

----------------------


현재 student_name  은 char로 되어있습니다..


맨처음에 mysql  연습하느라고 컬럼명 바꾸는 연습을 하였습니다.. 중간에 student_name을 int로 바꿨는데-, 제가 그걸 생각안하고 char값을 넣어버렸습니다;;


그러고 했더니,,0 이떠버립니다;; ; 제가 int값으로 한걸 생각하고, char로 고쳤습니다.


인터넷을 찾아보니;


update를 이용하면 바꿀수 있다고 하여서 바꾸는중인데


'update first_tb1 set student_name='aaaaa' where age='25' 이렇게 해서 바꿨습니다.


그런데 만약 age값이 25이 한개가 아니고 2개일경우는 어떻게 바뀌는거지요??


---------------------

student_name | age

----------------------

  aaaaa            | 25

----------------------

  bbbbb            | 25

----------------------


이럴경우에는 bbbbb를 검색해서 하면되지만.


---------------------

student_name | age

----------------------

  aaaaa            | 25

----------------------

  aaaaa           | 25

----------------------

이럴경우 입니다.


이거 해야할것은 점점 많아지는데,, 이거에 시간을 너무 많이 빼앗기고 있다는.. 휴.. 이래서 하고싶은걸 할수 있으려나..



저작자 표시 비영리
신고
  1. Favicon of http://dejavus.tistory.com BlogIcon dejavus 2009.03.19 21:18 신고

    마지막 경우에는 두개가 전부 바뀌게 됩니다 ^^
    두개를 구분해야 하는 경우가 생길텐데 사실
    마지막 테이블 key가 될만한게 없기 때문에 애초에 저렇게 만들면 안됩니다 ㅋ
    normalization, 정규화라고 하나요 ㅡㅡa
    지금은 햇갈리시겠지만 뭐 쫌 써보면 쉬워진다는...

    • Favicon of http://redeyesofangel.tistory.com BlogIcon Yuika eizt 2009.03.20 21:15 신고

      아무래도,,만들대,, 저긋들을 구분해줄수 있는걸 같이 만들어야 될것 같아요,

      예를 들면,, 순서대로 번호를 넣거나 그런 방법으로요,,
      !!

  2. Favicon of http://goodfeel.pe.kr BlogIcon 2009.03.23 11:14 신고

    여러가지 실수를 한꺼번에 하신거 같은데... 일단 테이블을 처음 만들었을 때 부터가 문제였던 것 같네요.
    테이블에 pk(primary key)가 없습니다. 이름,나이 컬럼 가지고는 row를 유일하게 식별할 수 있는 방법이 없으니까요. 쉽게 설명하자면, 이름이 같거나 나이가 같은 사람이 존재할 수 있다는 것이지요.
    그러니까 EizT님 말대로 임의의 번호를 부여하던가 학번, 주민번호 같이 중복되지 않는 값을 갖는 컬럼이 필요합니다. dejavus님 말데로 정규화에 대한 공부를 하시면 더 잘 아시겠지만.. 일단 배우는 과정이신거 같으니 다른건 몰라도 일단 테이블 만들면 꼭 pk는 하나 잡아두세요. 일반적으로는 id라는 이름에 int type으로 auto-increse 옵션을 선택해 pk로 사용합니다.
    뭐 연습하시는 과정이었으니.. 이름을 pk로 설정했었다면 update ... where age=25라는 쿼리가 동작하지 않아 문제가 생기지 않았을겁니다. pk는 중복을 허용하지 않으니까요. 하지만 key설정이 되지 않아 이미 update가 되어버렸다면 별 방법이 없죠. ^^;; 눈으로 보고 수정하시던가 해야 할 듯..

    • Favicon of http://redeyesofangel.tistory.com BlogIcon Yuika eizt 2009.03.23 19:07 신고

      좋은 조언 감사합니다..


      정말 열심히 해야될것 같아요,,, 문뜩 생각난건데,,,

      포탈이라던지 ,, 여러 싸이트 가입할때 주민등록번호가 왜 필요할지 이제 알것 같아요.;; 개인정보를 어디에 쓰든 말든 그런 내용을 빼면, 나중에 아이디라던지 패스워드 찾을때 더 유용할수 있다 이뜻이겠죠.??

      왠지 모르게 열심히 해야될것 같아요, 좋은 지적 감사합니다.

▒▒▒ MYSQL 기본명령어 - 여러가지명령어 ▒▒▒

테이블구조를 정해놓고 설명하겠습니다.
-- 테이블 NAME : TEST --
---------------------------------------------
필드이름   |   타입
---------------------------------------------
id            |    int(11) auto_increment not null
name       |   varchar(10)
email       |   varchar(30)
---------------------------------------------


▒▒ INSERT : 레코드를 삽입하는 명령어입니다.
ex) insert into test values (' ','송윤경','leopit@korea.com');
ex) insert into test id,name values(' ','송윤경');

▒▒ UPDATE : 데이터를 업데이트합니다.
ex) update test set name='홍지현' where id=1;
ex) update test set name='홍지현' where name='송윤경';

▒▒ DELETE : 레코드를 삭제합니다.
ex) delete from test where id=1;
ex) delete from test where name='송윤경';

▒▒ DROP : 테이블을 삭제합니다.
ex) drop table test;

▒▒ ALTER : 각종정보를 수정합니다.
-- 테이블이름 수정 --
ex) alter table test rename test1; 
ex) rename table test to test1;  
// test 란 테이블 이름을 test1 으로 바꿉니다.

-- 필드추가 --
ex) alter table test add content text  // content 란 필드를 추가합니다.

-- 필드삭제 --
ex) alter table test drop content   // content 필드를 삭제합니다.

-- 필드이름 수정 --
ex) alter table test change name myname   // name 필드를 myname으로 수정합니다.

-- 필드타입 수정 --
ex) alter table test modify name varchar(30)   // name 필드를 타입을 varchar(30)으로 바꿉니다. 


출처 : http://leopit.com
저작자 표시 비영리
신고
1

+ Recent posts