반응형

일을 하다보면 FK(foreign key)가 걸려있는 데이터를 수정하거나 삭제를 해야되는 경우가 발생을 한다.
그냥 삭제를 진행하면 테이블간 관계로 인하여 오류가 뜨고 더이상의 진행이 안된다.

그럴때는 SQL 연결프로그램이나 터미널에서 MYSLQ에 접속을 한다음 아래와 같은 명령어를 입력후에 데이터 수정 / 삭제를 진행하면 된다.
참고로 TABLE 삭제 할 때도 동일하다.

SET foreign_key_checks = 0;
위 명령어를 입력 실행을 하면 FK키의 제약조건이 해지가 된다.

SET foreign_key_checks = 1;
위 명령어를 입력 실행을 하면 FK키의 제약조건을 활성화 시킨다.

이렇게 진행을 하면 어렵지 않게 진행을 할수 있다.

반응형
반응형

CentOS7 기준

1. mysql -uroot -hlocalhost -p
2. update user set password=password('비밀번호') where user='root'
3. grant all privileges on *.* to 'root'@'%' identified by '비밀번호'
4. flush privileges;
5. systemctl restart mysql

반응형
반응형

요즘 자꾸 까먹는 거 같다.
자주 쓰지를 않으니.. 

테이블 리스트(컬럼포함) 조회
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = '데이터베이스명';
이렇게 하면 조회를 해온다.

테이블 인덱스 조회
SELECT *
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = '데이터베이스명';
이렇게 하면 조회를 해온다.

잊어버리지 말자.

반응형
반응형

작업하던 기능중에 mysql DB에 ','으로 구분되어 있는 값을 검색하는 일이 생겨버렸다.

열심히 찾다보니 좋은 정보를 찾게되어 내용을 정리해서 올려본다.


PHP 함수중에 in_array, array_search 처럼 배열안에 있는 값을 찾을수 있는 MySql 함수를 찾게 되었다.
MySql함수는 find_in_set 함수 이다.

사용방법은 아래와 같다.


ex)

테이블 컬럼에 있는 값이 1,2,3,4, or test, asd, sql, php 등으로 되어 있을경우 사용을 할수 있는거 같다.


1. select test_ex from dum where find_in_set(1, 데이터 컬럼);

2. SELECT *

FROM test1_tbl a, test2_tbl b

WHERE FIND_IN_SET(b.test2_id, a.test1_data) AND

b.test2_name LIKE CONCAT('%', 'TEST', '%');


반응형
반응형

회사에서 테스트를 하던중  AUTO_INCREMENT의 시작번호를 변경하는 부분이 필요해서 작업하던중 해당 내용을 남긴다.


## 쿼리

alter table 적용할테이블 AUTO_INCREMENT=시작번호

반응형
반응형

MySql 작업중 해당 데이터베이스를 개발로 옴기는 문제가 생겼는데..

덤프로 떠서 옴기지 않고 데이터베이스와 테이블만 생성을 해서 처리를 하기로 했다.


데이터베이스의 SQL 추출 : 

show create database 데이터베이스명;

결과 :

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

| Database        | Create Database          |

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

| 데이터베이스명  | 데이터베이스 생성 구문   |

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



테이블의 SQL 추출 : 

show create table 테이블명;

결과 :

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

| Table      | Create Table           |

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

| 테이블명   | 테이블 생성 구문       |

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

반응형
반응형

오늘 작업을 하던중. DB안에 값을 변경해야될 일이 생겼다.

MySql의 특정 필드값을 변경을 하던 내용이다.


update 테이블명 set 필드명 = replace(필드명,변경할문자,변경문자) where 조건


잊지말자.


반응형

+ Recent posts