반응형
mariadb에 가상 열 생성 및 case 문 실패
하려고 합니다.create a table in MariaDB
와 함께virtual column
a로 정의된case
진술
이것이 제가 가진 것입니다.
create table Foto (
ID int AUTO_INCREMENT not null primary key,
LigPlaatsCode varchar(10) not null,
FotoTypeID int not null check (FotoType in (0, 1, 2, 3)),
Foto varchar(1000) not null,
FotoType varchar(50) as
case FotoTypeID
when 0 then 'Bidprent'
when 1 then 'Krantartikel'
when 2 then 'Persoon'
else 'Graf'
end, `
constraint FK_Foto_LigPlaats foreign key (LigPlaatsCode) references LigPlaats (LigPlaatsCode)
)
하지만 그것은 항상 나에게 이 오류를 줍니다.
#42000SQL 구문에 오류가 있습니다. 사용할 올바른 구문은 MariaDB 서버 버전에 해당하는 설명서에서 확인하십시오.
near 'case FotoType아이디
0일 때는 'Bidpreent'입니다.
1일 때 7행에서 '크란타'
제가 가상 칼럼과 사례를 만드는 방법을 구글에 검색했을 때, 제가 찾은 링크는 제가 옳았다는 것을 암시하는 것처럼 보이지만, 분명히 저는 그렇지 않습니다.그래서 저는 뭔가를 놓치고 있습니다.
테이블 만들기 문에 문제가 있는 것은 무엇입니까?
편집
제 버전은10.3.21-MariaDB
생성된 열에는 대소문자열이 필요합니다.
create table Foto (
ID int AUTO_INCREMENT not null primary key,
LigPlaatsCode varchar(10) not null,
FotoTypeID int not null ,
Foto varchar(1000) not null,
FotoType varchar(50) as
(case FotoTypeID
when 0 then 'Bidprent'
when 1 then 'Krantartikel'
when 2 then 'Persoon'
else 'Graf'
end), -- brackets around
-- constraint as separate entry because it is referencing FotoType
constraint fototypecheck check (FotoType in (0, 1, 2, 3))
);
FotoType이 텍스트이므로 이 줄은 의미가 없습니다.
FotoTypeID int not null check (FotoType in (0, 1, 2, 3)),
-- probably it should be
FotoTypeID int not null check (FotoTypeID in (0, 1, 2, 3)),
언급URL : https://stackoverflow.com/questions/65467309/create-virtual-column-in-mariadb-with-case-statement-fails
반응형
'programing' 카테고리의 다른 글
Stop-Service Cmdlet이 존재하는 서비스를 열 수 없습니다. (0) | 2023.09.05 |
---|---|
내 앱을 위해 갤러리(SD 카드)에서 이미지를 선택하는 방법은 무엇입니까? (0) | 2023.09.05 |
오류: 기본 자격 증명을 로드할 수 없습니다(Firestore에 대한 Firebase 함수). (0) | 2023.06.17 |
C에는 논리적 할당 연산자가 없는 이유는 무엇입니까? (0) | 2023.06.17 |
SQL "Join" on null 값 (0) | 2023.06.17 |