mysql에서 auto increment 속성을 초기화할 때

Alter table test.member auto_increment=1

 

이 때 auto_increment의 숫자는 현재 테이블에서 가장 높은 수 보다 커야한다.

 

 

-Before

-After


WRITTEN BY
beautifulhill

,

1. 오류

failed to Connect to MySQL at ftp서버 width user root  

Bad handshake

 

 

2. 원인

최신 workbench

버전이 낮은 구 mysql

 

 

3. 해결방안

낮은 버전의 workbench 설치한다.

해당링크에서 연결해야 할 mysql에 맞는 버전으로 설치한다.

 

https://dev.mysql.com/downloads/

 

MySQL :: MySQL Community Downloads

The world's most popular open source database

dev.mysql.com

 

 

3-1. mysql workbench 클릭

 

 

3-2. Select Opreating System 에서 해당하는 OS를 선택한 후 

Looking for previous GA versions를 클릭한다.

 

 

3-3. 버전을 선택한 후 다운로드 받는다.

 

 

 


WRITTEN BY
beautifulhill

,

1. 오류

mysql에서 회원 한명을 삭제 하기 위해 delete문을 실행했더니

 

delete from test.member where name = 'a';

 

다음과 같은 오류가 발생하였다.

 

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.  To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

 

2. 원인

safe모드 기능 때문에 delete나 update가 안되는 상태이다.

 

 

3. 해결방안

다음과 같이 safe모드를 0으로 설정하면 된다.

SET SQL_SAFE_UPDATES = 0;
delete from test.member;

WRITTEN BY
beautifulhill

,

 

1. table : kgroup - 아이돌그룹

 

 

2. table : album - 아이돌 노래명

 

 

1. kgroup 의 아이돌들이 부른 노래들을 보고싶다면 left join을 이용한다.

select a.name, a.agency, b.title
from kgroup a
left join album b
on a.name = b.name

 

album 테이블에 러블리즈가 부른 노래가 없으므로 러블리즈의 title컬럼은 null이다.

 

2. album 의 노래를 부른 가수들의 소속사를 보고싶다면 right join을 이용한다.

select a.agency, b.name, b.title
from kgroup a
right join album b
on a.name = b.name;

 

3. 전체 목록을 출력하고 싶다면 full outer join을 사용할 수 있다.

 

mysql 의 경우 full outer join을 지원하지 않으므로

 

"select * from a left join b on a.no = b.no

union

select * from a right join b on a.no = b.no"

의 형식을 사용하면 된다.

select a.name, a.agency, b.title
from kgroup a
left join album b
on a.name = b.name
union
select b.name, a.agency, b.title
from kgroup a
right join album b
on a.name = b.name;

 

 

 

 

3_2. 비교 : union all 을 사용할 경우 

select a.name, a.agency, b.title
from kgroup a
left join album b
on a.name = b.name
union all
select b.name, a.agency, b.title
from kgroup a
right join album b
on a.name = b.name;

 

이 때 union 과 union all의 차이점을 알아야 한다.

left join과 right join을 합할 경우 가운데 inner join 부분이 중복된다.

union의 경우 중복값을 제거해주고 union all은 중복값을 포함한 결과값들이 출력되므로

중복되는 inner join 결과들을 제거해주는 union을 사용해야 한다.

 


WRITTEN BY
beautifulhill

,

 

1. 문제: workbench에서 mysql 데이터값을 수정, 삭제, 입력 등을 시행하려고 하는데,

readonly여서 못할 때가 있다.

 

 

이는 table에서 pk(primary key)가 지정돼있지 않아서 발생하는 문제이다.

 

해결법

Primary Key를 지정한다.

 

ALTER TABLE `test`.`readonly` 
ADD PRIMARY KEY (`no`);

 


WRITTEN BY
beautifulhill

,

datepicker란 jQuery에서 제공하는 위젯 중 하나이다. 

사용법은

 

1. import

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.18/themes/base/jquery-ui.css">

 

2. script

<script>
$(document).ready(function() {
    $("#datepicker").datepicker();
});
</script>

 

3. html

<body>
    날짜 선택: <input type="text" id="datepicker">
</body>

 

datepicker 기본

 

가장 기본 형태의 datepicke이다.

 

 

여기서 옵션을 추가할 수 있다. 

 

1. showOn

showOn: "button" ->button 클릭 시 날짜 위젯을 보여준다.

showOn:"both" => button이나 text상자 클릭 시 날짜 위젯을 보여준다.

    $("#datepicker").datepicker({
        showOn:"button"
    });

 

2. buttonImage

버튼 이미지

    $("#datepicker").datepicker({
        showOn:"button"
        , buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
    });

 

3. buttonImageOnly

버튼 이미지만 보이게 하기

    $("#datepicker").datepicker({
        showOn:"button"
        , buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
        ,buttonImageOnly: true
    });

4. changeMonth, changeYear

년, 월을 셀렉트박스로 변경

 $("#datepicker").datepicker({
        showOn:"button"
        , buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
        ,buttonImageOnly: true
        ,changeMonth:true
        ,changeYear:true 
    });

 

5. yearRange

연도의 선택 범위

$("#datepicker").datepicker({
        showOn:"button"
        , buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
        ,buttonImageOnly: true
        ,changeMonth:true
        ,changeYear:true
        ,yearRange:"-10:+100" /*2009 ~ 2119*/
        ,yearRange:"2009:9999" /*2009 ~ 9999*/
         /*위의 방식 아래 방식 둘다 가능*/
    });

 

 

 

 

6. nextText, prevText 

화살표의 툴팁내용

$("#datepicker").datepicker({
        showOn:"button"
        , buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
        ,buttonImageOnly: true
        ,changeMonth:true
        ,changeYear:true
        ,nextText:"다음"
        ,prevText:"이전"
        
    });

 

7. numberOfMonths:[n,m]

n X m 으로 달력을 보여줌

$(document).ready(function() {
    $("#datepicker").datepicker({
        showOn:"button"
        , buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
        ,buttonImageOnly: true
        ,changeMonth:true
        ,changeYear:true
        ,nextText:"다음"
        ,prevText:"이전"
        ,numberOfMonths:[2,3]
    });
});

 

8. dateFormat

날짜 형식

$("#datepicker").datepicker({
        showOn:"button"
        , buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
        ,buttonImageOnly: true
        ,changeMonth:true
        ,changeYear:true
        ,dateFormat:"dd-mm-yy"
    });

 

9. dayNames, dayNamesMin,monthNamesShort

dayNames: 요일 툴팁

dayNamesMin: 표시되는 요일

monthNamesShort : 표시되는 월

 $("#datepicker").datepicker({
        showOn:"button"
        , buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
        ,buttonImageOnly: true
        ,changeMonth:true
        ,changeYear:true
        ,dateFormat:"dd-mm-yy"
        ,dayNames : ['월요일','화요일','수요일','목요일','금요일','토요일','일요일']
        ,dayNamesMin : ['월','화','수','목','금','토','일']
        ,monthNamesShort:  [ "1월", "2월", "3월", "4월", "5월", "6월","7월", "8월", "9월", "10월", "11월", "12월" ]
    });

 

10. showOtherMonths

이전달, 다음달의 날짜 표시여부

$("#datepicker").datepicker({
        showOn:"button"
        , buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
        ,buttonImageOnly: true
        ,changeMonth:true
        ,changeYear:true
        ,dateFormat:"dd-mm-yy"
        ,dayNames : ['월요일','화요일','수요일','목요일','금','토','일']
        ,dayNamesMin : ['월','화','수','목','금','토','일']
        ,monthNamesShort:  [ "1월", "2월", "3월", "4월", "5월", "6월","7월", "8월", "9월", "10월", "11월", "12월" ]
        ,showOtherMonths:true
    });

 

 

이 외에도 여러가지 옵션들이 있으니, 직접 실행해보면 된다. 

'프로그래밍 > 기타' 카테고리의 다른 글

select 박스와 input의 위치가 다를때  (1) 2019.11.28

WRITTEN BY
beautifulhill

,

기존의 디자인에 맞춰 새로운 페이지를 만들거나, 수정할 때

select box와 input의 위치가 미묘하게 다를 때가 있다.

 

이렇게 selectbox가 올라가 있는경우, 혹은 그 반대의 경우가 보인다.

 

이럴 때

1. 높이를 확인한다.

아무런 css를 주지 않은 input의 경우 padding:1px 0px, border-with: 2px 이고

selectbox의 경우 padding: 0; border-width: 1px;이다.

그러므로 높이가 같은지 확인하는 것이 우선이다.

input의 디폴트 css값
select 의 디폴트 css값

 

 

2. vertical-align을 확인한다.

대부분의 문제는 vertical-align이 달라서 생기는 일이다.

위의 예시도 input 은 vertical-align: middle

select는 vertical-align: top으로 주어 발생한 문제이다.

 

vertical-align을 같은 값으로 주면 해결!!

input[type="text"]{
  line-height: 16px;
  vertical-align: middle;
}
select{
  height: 20px;
  vertical-align: middle;
}

 

'프로그래밍 > 기타' 카테고리의 다른 글

jQuery 달력 위젯 datepicker 사용하기  (1) 2019.11.28

WRITTEN BY
beautifulhill

,

before

SELECT * from(
(
SELECT 
  a.no,
  a.code,
  b.price,
  b.start_date,
  b.end_date
FROM product a
left join sale b
on a.code = b.code
)
Union
(
SELECT 
  a.no,
  a.code,
  b.price,
  b.start_date,
  b.end_date
FROM product a
right join sale b
on a.code = b.code
order by no desc
)
)
where code not in ('9001')
order by code, start_date

 

이 때 Error Code: 1248 Every derived table must have its own alias 오류가 발생한다.

 

파생테이블에 명칭( alias )가 있어야한다.

 

after

SELECT * from(
(
SELECT 
  a.no,
  a.code,
  b.price,
  b.start_date,
  b.end_date
FROM product a
left join sale b
on a.code = b.code
)
Union
(
SELECT 
  a.no,
  a.code,
  b.price,
  b.start_date,
  b.end_date
FROM product a
right join sale b
on a.code = b.code
order by no desc
)
)as c
where code not in ('9001')
order by code, start_date

WRITTEN BY
beautifulhill

,