Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Returning FK_NAME empty #1095

Open
SunandaS76 opened this issue Apr 15, 2024 · 0 comments
Open

Returning FK_NAME empty #1095

SunandaS76 opened this issue Apr 15, 2024 · 0 comments

Comments

@SunandaS76
Copy link

Description:

rs = metaData.getImportedKeys(dbConn.getCatalog(), null, tableName);
String fkName = rs.getString("FK_NAME");

Problem:
fkName = "" for all the tables in the schema.

Schema used is as follows:

                      create table classroom
                          (building		varchar(15),
                           room_number		varchar(7),
                           capacity		numeric(4,0),
                           primary key (building, room_number)
                          );
                      
                      create table department
                          (dept_name		varchar(20), 
                           building		varchar(15), 
                           budget		        numeric(12,2) check (budget > 0),
                           primary key (dept_name)
                          );
                      
                      create table course
                          (course_id		varchar(8), 
                           title			varchar(50), 
                           dept_name		varchar(20),
                           credits		numeric(2,0) check (credits > 0),
                           primary key (course_id),
                           foreign key (dept_name) references department (dept_name)
	                          on delete set null
                          );
                      
                      create table instructor
                          (ID			varchar(5), 
                           name			varchar(20) not null, 
                           dept_name		varchar(20), 
                           salary			numeric(8,2) check (salary > 29000),
                           primary key (ID),
                           foreign key (dept_name) references department (dept_name)
	                          on delete set null
                          );
                      
                      create table section
                          (course_id		varchar(8), 
                               sec_id			varchar(8),
                           semester		varchar(6)
	                          check (semester in ('Fall', 'Winter', 'Spring', 'Summer')), 
                           year			numeric(4,0) check (year > 1701 and year < 2100), 
                           building		varchar(15),
                           room_number		varchar(7),
                           time_slot_id		varchar(4),
                           primary key (course_id, sec_id, semester, year),
                           foreign key (course_id) references course (course_id)
	                          on delete cascade,
                           foreign key (building, room_number) references classroom (building, room_number)
	                          on delete set null
                          );
                      
                      create table teaches
                          (ID			varchar(5), 
                           course_id		varchar(8),
                           sec_id			varchar(8), 
                           semester		varchar(6),
                           year			numeric(4,0),
                           primary key (ID, course_id, sec_id, semester, year),
                           foreign key (course_id, sec_id, semester, year) references section (course_id, sec_id, semester, year)
	                          on delete cascade,
                           foreign key (ID) references instructor (ID)
	                          on delete cascade
                          );
                      
                      create table student
                          (ID			varchar(5), 
                           name			varchar(20) not null, 
                           dept_name		varchar(20), 
                           tot_cred		numeric(3,0) check (tot_cred >= 0),
                           primary key (ID),
                           foreign key (dept_name) references department (dept_name)
	                          on delete set null
                          );
                      
                      create table takes
                          (ID			varchar(5), 
                           course_id		varchar(8),
                           sec_id			varchar(8), 
                           semester		varchar(6),
                           year			numeric(4,0),
                           grade		        varchar(2),
                           primary key (ID, course_id, sec_id, semester, year),
                           foreign key (course_id, sec_id, semester, year) references section (course_id, sec_id, semester, year)
	                          on delete cascade,
                           foreign key (ID) references student (ID)
	                          on delete cascade
                          );
                      
                      create table advisor
                          (s_ID			varchar(5),
                           i_ID			varchar(5),
                           primary key (s_ID),
                           foreign key (i_ID) references instructor (ID)
	                          on delete set null,
                           foreign key (s_ID) references student (ID)
	                          on delete cascade
                          );
                      
                      create table time_slot
                          (time_slot_id		varchar(4),
                           day			varchar(1),
                           start_hr		numeric(2) check (start_hr >= 0 and start_hr < 24),
                           start_min		numeric(2) check (start_min >= 0 and start_min < 60),
                           end_hr			numeric(2) check (end_hr >= 0 and end_hr < 24),
                           end_min		numeric(2) check (end_min >= 0 and end_min < 60),
                           primary key (time_slot_id, day, start_hr, start_min)
                          );
                      
                      create table prereq
                          (course_id		varchar(8), 
                           prereq_id		varchar(8),
                           primary key (course_id, prereq_id),
                           foreign key (course_id) references course (course_id)
	                          on delete cascade,
                           foreign key (prereq_id) references course (course_id)
                          );
                          
                      create table grade_value
                          (grade 		varchar(2),
                           value 		numeric(4,2),	
                           primary key(grade)
                          );

Expected behavior
Need to get a valid FK_NAME

Environment:

  • OS: [e.g. Ubuntu Ubuntu 22.04.3 LTS]
  • CPU architecture: [e.g. x86_64]
  • sqlite-jdbc version [e.g. 3.45.2.0]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants