public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter array size = ");
int size=in.nextInt();
int[] n = new int[size];
System.out.println("Enter "+ size +" values ");
for(int i=0;i<n.length;i++)
n[i] = in.nextInt();
int small=n[0],ssmall=n[0];
// finding small and second small
for(int i=0;i<n.length;i++){
if(small>n[i]){
ssmall=small;
small=n[i];
}else if(ssmall>n[i])
ssmall=n[i];
}
// finding second small if first element itself small
if(small==n[0]){
ssmall=n[1];
for(int i=1;i<n.length;i++){
if(ssmall>n[i]){
ssmall=n[i];
}
}
}
System.out.println("Small "+ small+" sSmall "+ ssmall);
in.close();
}
Ваш синтаксис выглядит нормально. Вы не показываете DDL для ссылочных таблиц PATIENT
и DOCTOR
, однако вполне вероятно, что ошибка происходит из-за того, что одно из требований внешних ключей MySQL не выполнено.
Цитаты из документации :
Соответствующие столбцы во внешнем ключе и ссылочном ключе должны иметь одинаковые типы данных.
blockquote>Вы должны убедиться, что
DOCTOR(DNo)
иPATIENT(PNo)
равныVARCHAR(5)
.MySQL требует индексов для внешних ключей и ссылочных ключей. [...] Такой индекс создается в ссылочной таблице автоматически, если он не существует.
blockquote>В идеале,
DOCTOR(DNo)
иPATIENT(PNo)
должны быть первичным ключом их соответствующих таблиц. Иначе, индекс должен существовать для каждого из них (это может быть индекс из нескольких столбцов, в котором упомянутый столбец появляется один раз).
См. эту скрипту дБ для рабочего примера:
CREATE TABLE PATIENT(PNo VARCHAR(5) PRIMARY KEY); CREATE TABLE DOCTOR(DNo VARCHAR(5) PRIMARY KEY); CREATE TABLE APPOINTMENT( APNo VARCHAR(5), PNo VARCHAR(5), DNo VARCHAR(5), APDATE DATETIME ); ALTER TABLE APPOINTMENT ADD PRIMARY KEY (APNo), ADD FOREIGN KEY (PNo) REFERENCES PATIENT(PNo), ADD FOREIGN KEY (DNo) REFERENCES DOCTOR(DNo) ;