Help please, I am trying to enter data to a table Empleadnom with 2 foreign keys of two other tables, the creation has no problems, with this code:
eng = create_engine("mysql+mysqldb://root:000@localhost:000/bdnomprueba2", echo=True)
Base = declarative_base()
metadata = MetaData()
class Empleadnom(Base):
__tablename__ = 'empleadnom'
id_Emp = Column(Integer(), primary_key=True)
numdocEmp = Column(Integer())
nombreEmp = Column(VARCHAR(45))
apellEmp = Column(VARCHAR(45))
celEmp = Column(Integer())
fechaingEmp = Column(Date())
cargoEmp = Column(VARCHAR(45))
sbmEmp = Column(Float(45))
id_eps = Column (Integer, ForeignKey('epsnom.id_eps'))
epsnom = relationship ("Epsnom", backref=backref('empleadnom', order_by=id_Emp ))
> class Epsnom(Base):
__tablename__ = 'epsnom'
id_eps = Column(Integer(), primary_key=True)
nit_eps = Column(Integer())
nombre_eps = Column(VARCHAR(100))
ciudad_eps = Column(VARCHAR(45))
tel_eps = Column(VARCHAR(45))
numdocEmp = Column(Integer())
Base.metadata.create_all(eng)
But when trying to add a record:
def Agregar():
print("Estas en la Opcion Agregar Empleados ")
Session = sessionmaker(bind=eng)
session = Session()
empleado=Empleadnom(numdocEmp = input("Digite el numero de Documento del Empleado"),
nombreEmp = input("Digite el primer nombre del empleado"),
apellEmp = input("Digite el primer apellido del empleado"),
celEmp = input("Digite el numero del celular del empleado"),
fechaingEmp = input("Digite la fecha de ingreso del empleado"),
cargoEmp = input("Digite el cargo del empleado"),
sbmEmp = input("Digite el salario basico mes del empleado"),
id_eps = input("Digite el nombre de La EPS"),
id_afp = input("Digite el nombre de la AFP"))
session.add(empleado)
session.commit()
session.close()
I get the following error, I do not know what I'm missing or what I have left, thanks for your collaboration:
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1452, 'Cannot add or update a child row: a foreign key constraint fails ('bdnomprueba2'.'empleadnom', CONSTRAINT 'empleadnom_ibfk_1' FOREIGN KEY ('id_eps') REFERENCES 'epsnom' ('id_eps'))') [SQL: 'INSERT INTO empleadnom ('numdocEmp', 'nombreEmp', 'apellEmp', 'celEmp', 'fechaingEmp', 'cargoEmp', 'sbmEmp', id_eps, id_afp) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)'] [parameters: ('555', 'adsd', 'asdsad', '222', '2015-01-01', 'sdsad', '1500', '1', '2')]