생성된 열이 있는 테이블을 생성하면 오류가 발생합니다.
이 답변에 따라 MySQL에 테이블을 구축하려고 합니다.그러나 MySQL에서 답변의 예시와 같은 쿼리를 실행해도 오류가 계속 발생합니다.
이 쿼리는 매뉴얼에서 가져온 것으로 올바르게 작동합니다.
CREATE TABLE triangle (
sidea DOUBLE,
sideb DOUBLE,
sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb)) stored
);
이 쿼리는 내가 링크한 답변에서 나온 것으로, 나에게 오류를 준다.
CREATE TABLE IF NOT EXISTS MyTable (
id int NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
description varchar(50) NOT NULL,
slug text NOT NULL AS (SHA2(CONCAT(name, description), 256) STORED,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
이 쿼리는 답변을 기반으로 실행하려고 하는 쿼리이며, 이 쿼리는 나에게도 오류를 일으킨다.
CREATE TABLE IF NOT EXISTS myTable(
id BIGINT NOT NULL AUTO_INCREMENT,
first VARCHAR(104) NOT NULL DEFAULT '',
second DATETIME NULL,
third DATETIME NULL,
fourth VARCHAR(255) NULL,
table_key varchar(64) NOT NULL AS (SHA2(concat_ws(',',first, second, third, fourth), 256)) stored unique,
PRIMARY KEY (id),
INDEX (first));
왜 작동이 안 되는지 알아내는 것 좀 도와줄래?
주의:SHA2(concat_ws(',',first, second, third, fourth), 256)
이것은 통상적인 select 스테이트먼트에서 동작합니다.
편집
이것이 내가 받고 있는 오류이다.
Query execution failed
Reason:
Errore SQL [1064] [42000]: (conn:28) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS (SHA2(CONCAT(name, description), 256) STORED,
PRIMARY KEY (id)
) DEFAULT ' at line 5
Query is : CREATE TABLE IF NOT EXISTS MyTable (
id int NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
description varchar(50) NOT NULL,
slug text NOT NULL AS (SHA2(CONCAT(name, description), 256) STORED,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8
를 추가해야 합니다.NOT NULL
그 후AS
다음과 같이 열의 부분(예: 열 정의)을 지정합니다.
CREATE TABLE IF NOT EXISTS myTable(
id BIGINT NOT NULL AUTO_INCREMENT,
first VARCHAR(104) NOT NULL DEFAULT '',
second DATETIME NULL,
third DATETIME NULL,
fourth VARCHAR(255) NULL,
table_key varchar(64) AS (SHA2(concat_ws(',',first, second, third, fourth), 256)) stored unique NOT NULL,
PRIMARY KEY (id),
INDEX (first)
);
의 공식 문서도 참조해 주세요.여기서 데이터 유형 구문에 대한 설명을 찾을 수 있습니다.계산된 열의 정의는 데이터 유형의 일부입니다.
언급URL : https://stackoverflow.com/questions/60547871/created-table-with-generated-columns-throw-an-error
'source' 카테고리의 다른 글
필드 수가 1개보다 큰 경우 선택 (0) | 2022.10.25 |
---|---|
LEFT OUTER JOIN과 LEFT JOIN의 차이점 (0) | 2022.10.25 |
MySQL에서 가장 가까운 정수로 반올림하는 방법 (0) | 2022.10.25 |
MariaDB가 0.0.0에서 리슨하지 않음 (0) | 2022.10.15 |
기본 Python으로 brew installed Python을 사용하려면 어떻게 해야 하나요? (0) | 2022.10.15 |