MySQL 테이블을 변경하여 열에 주석을 추가합니다.
MySQL Documentation for ALTER TABLE을 확인했는데 컬럼에 코멘트를 추가하거나 수정할 수 있는 방법은 없는 것 같습니다.이거 어떻게 해?
-- for table
ALTER TABLE myTable COMMENT 'Hello World'
-- for columns
-- ???
시험:
ALTER TABLE `user` CHANGE `id` `id` INT( 11 ) COMMENT 'id of user'
이렇게 하면 됩니다.그냥...
ALTER TABLE YourTable
MODIFY COLUMN your_column
your_previous_column_definition COMMENT "Your new comment"
대체:
YourTable
테이블 이름과 함께your_column
당신의 코멘트 이름과 함께your_previous_column_definition
컬럼의 column_definition과 함께 사용할 것을 권장합니다.SHOW CREATE TABLE YourTable
명령어 및 복사하여 트랩을 회피합니다.*Your new comment
원하는 칼럼 코멘트를 첨부합니다.
예를 들면...
mysql> CREATE TABLE `Example` (
-> `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-> `some_col` varchar(255) DEFAULT NULL,
-> PRIMARY KEY (`id`)
-> );
Query OK, 0 rows affected (0.18 sec)
mysql> ALTER TABLE Example
-> MODIFY COLUMN `id`
-> int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Look, I''m a comment!';
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SHOW CREATE TABLE Example;
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Example | CREATE TABLE `Example` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Look, I''m a comment!',
`some_col` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
* 사용할 때마다MODIFY
또는CHANGE
의 조항ALTER TABLE
statement, 나는 column의 정의를 copy할 것을 제안합니다.SHOW CREATE TABLE
진술.이렇게 하면 열 정의의 중요한 부분을 실수로 잃어버리는 것을 방지할 수 있습니다.이것에 의해, 열 정의를 포함할 필요가 있는 것을 깨닫지 않게 됩니다.MODIFY
또는CHANGE
절을 클릭합니다.예를 들어,MODIFY
한 사람AUTO_INCREMENT
컬럼을 명시적으로 지정해야 합니다.AUTO_INCREMENT
에서 다시 수식어MODIFY
절을 작성하지 않으면 컬럼이 더 이상 표시되지 않게 됩니다.AUTO_INCREMENT
기둥.마찬가지로 컬럼이 다음과 같이 정의되어 있는 경우NOT NULL
또는DEFAULT
값, 이러한 세부 사항은 다음을 수행할 때 포함해야 합니다.MODIFY
또는CHANGE
그렇지 않으면 그들은 잃게 될 것이다.
데이터베이스의 모든 필드에 대한 스크립트:
SELECT
table_name,
column_name,
CONCAT('ALTER TABLE `',
TABLE_SCHEMA,
'`.`',
table_name,
'` CHANGE `',
column_name,
'` `',
column_name,
'` ',
column_type,
' ',
IF(is_nullable = 'YES', '' , 'NOT NULL '),
IF(column_default IS NOT NULL, concat('DEFAULT ', IF(column_default IN ('CURRENT_TIMESTAMP', 'CURRENT_TIMESTAMP()', 'NULL', 'b\'0\'', 'b\'1\''), column_default, CONCAT('\'',column_default,'\'') ), ' '), ''),
IF(column_default IS NULL AND is_nullable = 'YES' AND column_key = '' AND column_type = 'timestamp','NULL ', ''),
IF(column_default IS NULL AND is_nullable = 'YES' AND column_key = '','DEFAULT NULL ', ''),
extra,
' COMMENT \'',
column_comment,
'\' ;') as script
FROM
information_schema.columns
WHERE
table_schema = 'my_database_name'
ORDER BY table_name , column_name
- CSV로 모두 내보내기
- 마음에 드는 CSV 에디터로 열기
주의: 필요에 따라 1개의 테이블만 개선할 수 있습니다.
@Rufinus가 제공하는 솔루션은 훌륭하지만 자동 증가 기능이 있으면 고장납니다.
정보 스키마는 이러한 문제를 처리하는 데 적합하지 않습니다(DDL 데이터베이스 명령 참조).
주석을 추가할 때는 표 구조(표 주석)를 변경해야 합니다.
MySQL 5.6 설명서:
INFORMATION_SCHEMA는 MySQL 서버가 관리하는 다른 모든 데이터베이스에 대한 정보를 저장하는 각 MySQL 인스턴스 내의 데이터베이스입니다.INFORMATION_SCHEMA 데이터베이스에는 읽기 전용 테이블이 여러 개 포함되어 있습니다.기본 테이블이 아닌 실제 뷰이기 때문에 연관된 파일이 없으며 이러한 뷰에 트리거를 설정할 수 없습니다.또한 해당 이름을 가진 데이터베이스 디렉토리가 없습니다.
USE 문이 있는 기본 데이터베이스로 INFORMATION_SCHEMA를 선택할 수 있지만 테이블에 대한 INSERT, UPDATE 또는 DELETE 작업은 수행할 수 없습니다.
설명서에 따르면 주석을 추가할 수 있는 것은 테이블을 작성할 때뿐입니다.따라서 테이블 정의가 있어야 합니다.스크립트를 사용하여 정의를 읽고 주석을 갱신하는 자동화의 한 가지 방법입니다.
레퍼런스:
http://cornempire.net/2010/04/15/add-comments-to-column-mysql/
http://bugs.mysql.com/bug.php?id=64439
언급URL : https://stackoverflow.com/questions/2162420/alter-mysql-table-to-add-comments-on-columns
'sourcecode' 카테고리의 다른 글
PHP 도메인 이름 가져오기 (0) | 2022.11.16 |
---|---|
모든 JavaScript 오류를 포착하여 서버로 전송 (0) | 2022.11.16 |
Flask 뷰에서 JSON 응답 반환 (0) | 2022.11.16 |
Android 5.0 - Recycleer View에 머리글/바닥글 추가 (0) | 2022.11.07 |
Python Anaconda - 안전하게 제거하는 방법 (0) | 2022.11.07 |