itsource

MYSQL 테이블에 새 열을 추가하는 방법

mycopycode 2022. 9. 18. 10:21
반응형

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개의 테이블을 만듭니다.

  1. 평가
  2. 질문.
  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 링크

[이미지 alter-table-add-column]여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/16113570/how-to-add-new-column-to-mysql-table

반응형