2009-12-29 6 views
0

나는이 테이블이 있습니다MySQL은

CREATE TABLE IF NOT EXISTS `events` (
    `evt_id` int(11) NOT NULL AUTO_INCREMENT, 
    `evt_name` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT 'ucfirst', 
    `evt_description` varchar(100) DEFAULT NULL, 
    `evt_startdate` date NOT NULL, 
    `evt_enddate` date DEFAULT NULL, 
    `evt_starttime` time DEFAULT NULL, 
    `evt_endtime` time DEFAULT NULL, 
    `evt_amtpersons` int(11) DEFAULT NULL, 
    `sts_id` int(11) NOT NULL, 
    `adr_id` int(11) DEFAULT NULL, 
    `evt_amtPersonsSubs` tinyint(4) NOT NULL DEFAULT '0', 
    `evt_photo` varchar(50) DEFAULT NULL, 
    `sys-mut-dt` timestamp NULL DEFAULT CURRENT_TIMESTAMP, 
    `sys-mut-user` varchar(20) DEFAULT NULL, 
    `sys-mut-id` int(11) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`evt_id`), 
    KEY `sts_id` (`sts_id`), 
    KEY `adr_id` (`adr_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ; 

을하지만 evt_name에 데이터를 추가 할 때 첫 문자는 대문자로하지 않습니다. 어떤 아이디어?

추가 정보 : MySQL 클라이언트 버전 : 5.1.37

나는 항상 PHP로 ucfirst을 할 필요가 없도록 데이터베이스에서이 작업을 수행 할 수 있습니다.

+0

저는 항상 PHP에서 '서식 지정'기능을 사용합니다. 나중에 다른 응용 프로그램에서 데이터를 재사용해야한다면 쉽게 사용할 수 있습니다. – BenTheDesigner

답변

3

... 무엇?

이 권리를 읽는다면, 기본값 evt_nameucfirst으로 설정하면됩니다. 빈 행을 삽입하고 내가 그 권리를 읽고 있는지보십시오.

PHP에서 ucfirst을 사용하는 것에 반대하는 경우 쿼리에서 항상 ucfirst을 호출해야합니다. 아니면 ucfirst 만 사용할 수 있으며 데이터베이스에는 표시 할 수 없습니다.

+0

ok 나는 각 쿼리에서 테이블 자체에서이를 수행하지 않고도 aragne을 사용할 수 있다고 생각했다. – sanders

2

ucfirst은 셀의 기본값으로 정의했습니다. 다음과 같이 사용하십시오 :

INSERT INTO events SET evt_name = UCFIRST($value) 
+2

'UCFIRST'는 표준 mysql 함수가 아닙니다. – Lode

+0

표준 방식으로이 작업을 수행하려면 다음을 사용하십시오. '''INSERT INTO'events' SET 'evt_name' = CONCAT (UPPER (LEFT ('$ value', 1)), LOWER (SUBSTRING ('$ 가치 ', 2)))''' – smhg