안녕 얘들 아 다른 사람이 ADO.net 커넥터가 "열에 대한 잘못된 값 : 예상 된 INT64" 방법 :ADO.net 커넥터 : 삭제 명령 반환 잘못된 열 값 : 예상 된 INT64
오류 정보 : 가. "시스템이 동작의 실행 상태에 필요한 상태가 아니기 때문에 작업이 거부되었습니다 (상태 코드 = FailedPrecondition는 상세 ="테이블 표에서 열 GeographyKey 값이 잘못 : 예상 INT64. ")"
var qry = "DELETE Table1";
var col = new SpannerParameterCollection();
col.Add("CustomerKey", SpannerDbType.Int64, 0);
col.Add("EmailAddress", SpannerDbType.String, "[email protected]");
col.Add("GeographyKey", SpannerDbType.Int64, 37);
이 하나 CustomerKey에 오류가 발생합니다 :
var qry = "DELETE Table1";
var col = new SpannerParameterCollection();
col.Add("EmailAddress", SpannerDbType.String, "[email protected]");
col.Add("GeographyKey", SpannerDbType.Int64, 37);
col.Add("CustomerKey", SpannerDbType.Int64, 0);
그러나 열이 첫 번째 목록에서 GeographyKey 및 CustomerKey를 이동,이 방법을 마련 할 때, 에러
var qry = "DELETE Table1";
var col = new SpannerParameterCollection();
col.Add("GeographyKey", SpannerDbType.Int64, 37);
col.Add("CustomerKey", SpannerDbType.Int64, 0);
col.Add("EmailAddress", SpannerDbType.String, "[email protected]");
세 개의 열은 KeySet의 일부입니다. 이 테이블은 PRIMARY KEY (GeographyKey, CustomerKey, EmailAddress)로 생성됩니다. 나는 왜 그것이 마지막 열이 INT64 일 때 열 순서대로 실패 할까 궁금 할뿐입니다. – Red
PRIMARY KEY의 마지막 열이 STRING 열 (EmailAddress)이기 때문에 마지막 열이 INT64 인 경우 오류가 발생합니다. 문제는 삭제할 키 세트를 만들 때 코드에 열 이름을 지정하더라도 열 이름이 Google Cloud Spanner로 전송되지 않고 키 집합이 지정된 값의 순서에 따라 평가된다는 것입니다. . 즉, 기본 키 (GeographyKey, CustomerKey, EmailAddress)의 정의와 동일한 순서로 키 값을 지정해야합니다. –