MYSQL 테이블에 새 열을 추가하는 방법
PHP를 사용하여 MYSQL 테이블에 새로운 컬럼을 추가하려고 합니다.새 열이 생성되도록 테이블을 변경하는 방법을 알 수 없습니다.평가표에는 다음과 같은 내용이 있습니다.
assessmentid | q1 | q2 | q3 | q4 | q5
텍스트 상자가 있는 페이지가 있고 입력했다고 가정합니다.q6
텍스트 상자에 있는 버튼을 누르면 테이블이 다음과 같이 업데이트됩니다.
assessmentid | q1 | q2 | q3 | q4 | q5 | q6
내 코드:
<?php
mysql_query("ALTER TABLE `assessment` ADD newq INT(1) NOT NULL AFTER `q10`");
?>
<form method="post" action="">
<input type="text" name="newq" size="20">
<input type="submit" name="submit" value="Submit">
테이블:
q1 | q2 | q3 | q4 | q5
할 수도 있습니다.
ALTER TABLE yourtable ADD q6 VARCHAR( 255 ) after q5
$table = 'your table name';
$column = 'q6'
$add = mysql_query("ALTER TABLE $table ADD $column VARCHAR( 255 ) NOT NULL");
변경할 수 있다VARCHAR( 255 ) NOT NULL
무슨 일이 있어도datatype
너는 원한다.
테이블 끝에 새 열을 추가할 수 있습니다.
ALTER TABLE assessment ADD q6 VARCHAR( 255 )
테이블 시작 부분에 열 추가
ALTER TABLE assessment ADD q6 VARCHAR( 255 ) FIRST
지정된 열 옆에 열 추가
ALTER TABLE assessment ADD q6 VARCHAR( 255 ) after q5
기타 옵션도 여기에 있습니다.
예를 들어 다음과 같습니다.
$db = mysqli_connect("localhost", "user", "password", "database");
$name = $db->mysqli_real_escape_string($name);
$query = 'ALTER TABLE assesment ADD ' . $name . ' TINYINT NOT NULL DEFAULT \'0\'';
if($db->query($query)) {
echo "It worked";
}
테스트 안 해봤지만 잘 될 거야.
실행 시 열이 생성되지 않도록 데이터베이스 정규화를 검토해야 합니다.
3개의 테이블을 만듭니다.
- 평가
- 질문.
- assessment_question(컬럼 평가 ID, question Id)
각각의 표에 질문과 평가를 넣고 외부 키를 사용하여 평가_질문을 통해 연결합니다.
코멘트에 따르면 다음과 같은 경우에만 새 열을 추가할 수 있습니다.mysql_query("SELECT * FROM assessment");
false가 반환됩니다.그건 네가 원한 게 아닐 거야첫 번째 if 문에서 $sql 앞에 있는 '!'를 삭제해 보십시오.따라서 코드는 다음과 같습니다.
$sql=mysql_query("SELECT * FROM assessment");
if ($sql) {
mysql_query("ALTER TABLE assessment ADD q6 INT(1) NOT NULL AFTER q5");
echo 'Q6 created';
}else...
WORDPRESS의 경우:
global $wpdb;
$your_table = $wpdb->prefix. 'My_Table_Name';
$your_column = 'My_Column_Name';
if (!in_array($your_column, $wpdb->get_col( "DESC " . $your_table, 0 ) )){ $result= $wpdb->query(
"ALTER TABLE $your_table ADD $your_column VARCHAR(100) CHARACTER SET utf8 NOT NULL " //you can add positioning phraze: "AFTER My_another_column"
);}
ALTER TABLE `stor` ADD `buy_price` INT(20) NOT NULL ;
PHP 코드의 ALTER TABLE에 관한 문제는 다음과 같습니다.
mysql_query("변경 테이블 평가 추가 newq INT(1) Q10 이후 NULL 아님);
테이블 샘플에는 q10이 없기 때문에 q5 이후가 될 것입니다.따라서 ALTER TABLE 평가 q5 이후 NULL이 아닌 신규 INT(1)가 된다.
[Skyvia]에 있는 내 테이블에서도 같은 논리를 사용했는데, 아래와 같이 동작합니다.Title 테이블의 To 열 뒤에 설명 열을 추가했습니다.
[Skyvia] - https://skyvia.com/query/online-mysql-query-builder 링크
언급URL : https://stackoverflow.com/questions/16113570/how-to-add-new-column-to-mysql-table
'itsource' 카테고리의 다른 글
PHP에서 문자열을 JSON 개체로 변환하는 방법 (0) | 2022.09.19 |
---|---|
PDO::_construct(): 서버가 클라이언트에 알 수 없는 문자 집합(255)을 보냈습니다.개발자에게 보고해 주세요. (0) | 2022.09.18 |
핸들바 '각' 루프가 있는 부모 속성 접근 (0) | 2022.09.18 |
모든 목록 요소에서 int() 함수를 호출하시겠습니까? (0) | 2022.09.18 |
Java에서 Enum의 compareTo가 최종인 이유는 무엇입니까? (0) | 2022.09.18 |