Problems with foreign key when entering new records

0

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')]
    
asked by Jsierra2017 12.01.2018 в 17:57
source

0 answers